- Katılım
- 6 Eylül 2007
- Mesajlar
- 657
- Excel Vers. ve Dili
- excel 2016 32 Bit ve Excel 2020 32 Bit Türkçe ve İngilizce
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Private Sub Worksheet_Change(ByVal Target As Range)
ss = Sayfa1.Cells(Rows.Count, "C").End(3).Row
If Intersect(Target, Range("B6:C" & ss)) Is Nothing Then Exit Sub
If Range("B" & Target.Row) = "" Or Range("C" & Target.Row) = "" Then Exit Sub
If IsNumeric(Range("B" & Target.Row)) And IsNumeric(Range("C" & Target.Row)) Then
Cells(Target.Row - 1, 5).Copy Cells(Target.Row, 5)
Else
MsgBox "Lütfen sayısal bir değer giriniz.", vbCritical, "DİKKAT !"
End If
End Sub
Çok teşekkürler dede gayet istediğim şekilde olmuşPrivate Sub Worksheet_Change(ByVal Target As Range) ss = Sayfa1.Cells(Rows.Count, "C").End(3).Row If Intersect(Target, Range("B6:C" & ss)) Is Nothing Then Exit Sub If Range("B" & Target.Row) = "" Or Range("C" & Target.Row) = "" Then Exit Sub If IsNumeric(Range("B" & Target.Row)) And IsNumeric(Range("C" & Target.Row)) Then Cells(Target.Row - 1, 5).Copy Cells(Target.Row, 5) Else MsgBox "Lütfen sayısal bir değer giriniz.", vbCritical, "DİKKAT !" End If End Sub
Bu iş için makroya gerek yok, B-C hücrelerine veri girip e hücresine geçip Ctrl-D ile üst hücreyi kopyalayın. Bu işlemi 4-5 kez uyguladıktan sonra, excel e hücresini otomatik olarak veri girdikçe aşağıya kopyalayacaktır.
Private Sub Worksheet_Change(ByVal Target As Range)
ss = Sheets("Rezervasyon").Cells(Rows.Count, "I").End(3).Row
If Intersect(Target, Range("H6:I" & ss)) Is Nothing Then Exit Sub
If Range("H" & Target.Row) = "" Or Range("I" & Target.Row) = "" Then Exit Sub
If IsDate(Range("H" & Target.Row)) And IsDate(Range("I" & Target.Row)) Then
Cells(Target.Row - 1, "V").Copy Cells(Target.Row, "V") 'Formülü kopyalar
'Cells(Target.Row, "V") = Cells(Target.Row, "I") - Cells(Target.Row, "H")' Formülle aynı işlemi yapar sonucu yazar
Else
MsgBox "Lütfen geçerli bir tarih giriniz." & vbCrLf & vbCrLf & _
"Örneğin: " & Date & " gibi", vbCritical, "DİKKAT !"
End If
End Sub
Merhaba,
Aşağıdaki kodu Rezervasyon sayfasının kod bölümüne yapıştırarak deneyiniz.
İlk mesajdaki önerimi tekrarlıyorum. Sizin istediğiniz şekilde olunca sürekli formülleri çoğaltıyoruz. Bu da uzun vadede dosya boyutunuzun büyümesine ve excelin yavaşlamasına neden olacaktır. Kod içinde gerekli açıklamayı yaptım. istediğinizi kullanabilirsiniz.
[/QUOTEKod:Private Sub Worksheet_Change(ByVal Target As Range) ss = Sheets("Rezervasyon").Cells(Rows.Count, "I").End(3).Row If Intersect(Target, Range("H6:I" & ss)) Is Nothing Then Exit Sub If Range("H" & Target.Row) = "" Or Range("I" & Target.Row) = "" Then Exit Sub If IsDate(Range("H" & Target.Row)) And IsDate(Range("I" & Target.Row)) Then Cells(Target.Row - 1, "V").Copy Cells(Target.Row, "V") 'Formülü kopyalar 'Cells(Target.Row, "V") = Cells(Target.Row, "I") - Cells(Target.Row, "H")' Formülle aynı işlemi yapar sonucu yazar Else MsgBox "Lütfen geçerli bir tarih giriniz." & vbCrLf & vbCrLf & _ "Örneğin: " & Date & " gibi", vbCritical, "DİKKAT !" End If End Sub
Teşekkürler gayet güzel oldu şimdi![]()