• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Çözüldü Kod İsteği

Katılım
17 Aralık 2008
Mesajlar
780
Excel Vers. ve Dili
Microsoft 365
Merhaba;

Aşağıdaki kodu çalıştırdığımda Call Araç_Kiralama_Altı bu satırda Argument not optional hatası alıyorum. Yardım eder misiniz ?

Sub Günlük_Araç_Kiralama(ByVal hcr As Range)
'Değişkenlerin tiplerini tanımladık ve değer atadık.
Dim satirNo As Long
Dim sonuc As Double
satirNo = hcr.Row
'M sütununa masraf kodunu girdik
Range("M" & satirNo).Value = "NAKA"
'%20 kdv tutarının matrahını kdv hariç sütununa girdik.
sonuc = (Range("H" & satirNo).Value - Range("F" & satirNo).Value) / Range("G" & satirNo).Value
' Sonuca göre makroyu çağır
If sonuc < 1230 Then
Call Araç_Kiralama_Altı
Else
Call Silgi
End If
End Sub
 
Araç_Kiralama_Altı fonksiyonun kodu ne, parametre alıyor mu?
 
Halily;

Araç Kiralama Altı'nın kodları alttadır.

Sub Araç_Kiralama_Altı(ByVal hcr As Range)

'Değişkenlerin tiplerini tanımladık ve değer atadık.
Dim satirNo As Long
satirNo = hcr.Row
'M sütununa masraf kodunu girdik
Range("M" & satirNo).Value = "NAK"
'%20 kdv tutarının matrahını kdv hariç sütununa girdik.
Range("P" & satirNo).Value = Range("F" & satirNo).Value / 0.2

'Değişkenlerin tiplerini tanımladık.
Dim a As Double, b As Double
'Değişkenlere değer atadık
a = Cells(satirNo, "H").Value
b = Cells(satirNo, "R").Value

'Eşitlik varsa alttaki kod çalışacak
If a = b Then

'Bir satır aşağıya indik
Cells(satirNo + 1, "L").Select

'Fatura toplamı büyükse alttaki kod çalışacak
ElseIf a > b Then

'Bir satır ekledik.
Rows(satirNo + 1).Insert Shift:=xlDown
'Bir satır kopyaladık
Range("A" & satirNo).EntireRow.Copy
'Bir satır aşağıya indik ve yapıştırdık.
Range("A" & satirNo + 1).PasteSpecial xlPasteAll
'Masraf kodunu girdik
Range("M" & satirNo + 1).Value = "NAKK"
'Tutarı hesapladık.
Range("H" & satirNo + 1).Value = Range("H" & satirNo).Value - Range("R" & satirNo).Value
'İkinci satırda tutarı girdik.
Range("P" & satirNo + 1).Value = Range("H" & satirNo + 1).Value
''''Bu satır neden var anlamadım.
Application.CutCopyMode = False
'İki satır aşağıya indik
Cells(satirNo + 2, "L").Select

'Fatura toplamı küçükse alttaki kod çalışacak
Else

'Tutarı hesapladık
Range("G" & satirNo).Value = Range("R" & satirNo).Value - Range("H" & satirNo).Value
'Birinci satırda tutarı girdik.
Range("P" & satirNo).Value = Range("P" & satirNo).Value - Range("G" & satirNo).Value
'Bir satır aşağıya indik
Cells(satirNo + 1, "L").Select


'Değişkenlerin tiplerini tanımladık.
Dim h As Double, i As Double
'Değişkenlere değer atadık
h = Cells(satirNo, "F").Value
i = Cells(satirNo, "Q").Value

'Eşitlik varsa alttaki kod çalışacak
If h = i Then

'Bir satır aşağıya indik
Cells(satirNo + 1, "L").Select

'Kdv toplamı büyükse alttaki kod çalışacak
ElseIf h > i Then

'Bir satır ekledik.
Rows(satirNo + 1).Insert Shift:=xlDown
'Bir satır kopyaladık
Range("A" & satirNo).EntireRow.Copy
'Bir satır aşağıya indik ve yapıştırdık.
Range("A" & satirNo + 1).PasteSpecial xlPasteAll
'Masraf kodunu girdik
Range("M" & satirNo + 1).Value = "İND20"
'Maliyet merkezini girdik
Range("K" & satirNo + 1).Value = "MR00"
'Tutarı hesapladık.
Range("H" & satirNo + 1).Value = Range("F" & satirNo).Value - Range("Q" & satirNo).Value
'İkinci satırda tutarı girdik.
Range("P" & satirNo + 1).Value = Range("H" & satirNo + 1).Value
''''Bu satır neden var anlamadım.
Application.CutCopyMode = False
'İki satır aşağıya indik
Cells(satirNo + 2, "L").Select

'Kdv toplamı küçükse alttaki kod çalışacak
Else

'İki satır aşağıya indik
Cells(satirNo + 2, "L").Select

End If
End If
End Sub
 
Merhaba.
Fonksiyon Sub Araç_Kiralama_Altı(ByVal hcr As Range) şeklinde olduğundan bir parametre yazmalısınız.
ByVal hcr As Range burada parametre değişkeni hücre(range) olduğundan bir hücre belirtilmeli.

Kodda hata veren satır. Call Araç_Kiralama_Altı hatalı
Doğrusu (örnek) Call Araç_Kiralama_Altı range("A1")
Örnekte yazan range("A1") yerine yazmanız gereken hücre referansı hangisiyse onu yazmalısınız.
 
Muzaffer Ali;

Demek istediğinizi anlamadım.
Call Araç_Kiralama_Altı range("A1") yazdım amahata verdi.
Range A1 yerine ne yazmam gerektiği konusunda bilgi sahibi değilim
 
Biolightant;

Teşekkür ederim, kodu bu şekilde yazınca oldu.
Zaman ayırıp ilgilenen, yanıt yazan herkese teşekkür ederim...
 
Geri
Üst