Çözüldü Kod İsteği

cavanoos

Altın Üye
Katılım
17 Aralık 2008
Mesajlar
770
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
11-01-2026
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
 
Katılım
2 Temmuz 2014
Mesajlar
251
Excel Vers. ve Dili
2021 Türkçe, 64bit
Araç_Kiralama_Altı fonksiyonun kodu ne, parametre alıyor mu?
 

cavanoos

Altın Üye
Katılım
17 Aralık 2008
Mesajlar
770
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
11-01-2026
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
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,561
Excel Vers. ve Dili
2019 Türkçe
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.
 

cavanoos

Altın Üye
Katılım
17 Aralık 2008
Mesajlar
770
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
11-01-2026
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
 

cavanoos

Altın Üye
Katılım
17 Aralık 2008
Mesajlar
770
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
11-01-2026
Biolightant;

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