Makro Mantığı Kurma - Yardım

Katılım
30 Temmuz 2007
Mesajlar
34
Excel Vers. ve Dili
Excel 2003 eng
Merhaba, ekteki dosya, firmalara belirli saatlerde verilen randebuları kaydetmeyi amaçlamaktadır. Dosya açıldığında iki firmayı göreceksiniz. Fakat ben 1.firmanın üstüne gelip "Randevu Sil" butonuna basıp firmayı sildiğimde, artık 2.firmadaki verinin 2.firmadaki verinin yerine geçmesini istiyorum. Ama bir türlü mantığı kuramadım. Firma sayısının 7 ile sınırlı olması da gerekiyor. O yüzden yardımınıza çok ihtiyacım var. En azından bir yol gösteren olursa sevinirim, teşekkürler
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Merhabalar

Userform2'deki CommandButton2 (Evet Butonu) kodlarını aşağıdaki gibi revize ediniz.
Kod:
Private Sub CommandButton2_Click()
Dim arrVeri()
Dim rg As Range
Dim sut As Integer
Dim j As Integer
Dim i As Integer
Dim x As Integer
ActiveSheet.Unprotect
Set rg = Range("H4:AB27")
If Not Intersect(ActiveCell, rg) Is Nothing Then
   sut = (ActiveCell.Column - 8) Mod 3
   With ActiveCell
       .Offset(0, 0 - sut) = Empty
       .Offset(0, 1 - sut) = Empty
       .Offset(0, 2 - sut) = Empty
   End With
End If
For j = 8 To 26 Step 3
    If Cells(ActiveCell.Row, j) <> Empty Then
       y = y + 1
       ReDim Preserve arrVeri(1 To 3, 1 To y)
       arrVeri(1, y) = Cells(ActiveCell.Row, j)
       arrVeri(2, y) = Cells(ActiveCell.Row, j + 1)
       arrVeri(3, y) = Cells(ActiveCell.Row, j + 2)
    End If
Next j
Range("H" & ActiveCell.Row & ":AB" & ActiveCell.Row).ClearContents
x = 8
If y = Empty Then: Unload Me: Exit Sub
For i = 1 To UBound(arrVeri, 2)
    Cells(ActiveCell.Row, x) = arrVeri(1, i)
    Cells(ActiveCell.Row, x + 1) = arrVeri(2, i)
    Cells(ActiveCell.Row, x + 2).Formula = "=IF(" & Cells(ActiveCell.Row, x).Address & "=" & Chr(34) & Chr(34) & "," _
                                                                                           & Chr(34) & Chr(34) & "," _
                                                                                           & "VLOOKUP(" & Cells(ActiveCell.Row, x).Address & "," & Range("H100:I606").Address & ",2,FALSE))"
    x = x + 3
Next i
Set rg = Nothing
ActiveSheet.Protect
Unload Me
End Sub
Ekteki dosyayı inceleyiniz.
 
Son düzenleme:
Katılım
30 Temmuz 2007
Mesajlar
34
Excel Vers. ve Dili
Excel 2003 eng
Merhaba, Ferhat Bey, dedi&#287;iniz gibi yapt&#305;&#287;&#305;mda Elle&#231; s&#252;tunundaki formuller siliniyor, bu konuda ne yapabilirim? te&#351;ekk&#252;rler
 
Katılım
30 Temmuz 2007
Mesajlar
34
Excel Vers. ve Dili
Excel 2003 eng
Tekrar merhaba Ferhat Bey, &#231;&#246;z&#252;m&#252;n&#252;z i&#231;in te&#351;ekk&#252;rler fakat bu sefer ba&#351;ka bir sorun &#231;&#305;kt&#305;. Randevu sildi&#287;imizde, vlookupl&#305; olan ve form&#252;l i&#231;eren h&#252;credeki form&#252;l siliniyor ve yeni randevu yarat&#305;ld&#305;&#287;&#305;nda, vlookup &#231;ekilmedi&#287;i i&#231;in firma isimlerinde E kolonu &#231;&#305;km&#305;yor. Randevu yarat'taki kaydete bast&#305;&#287;&#305;mda vlookup &#231;ekmesini sa&#287;lamam gerekiyor san&#305;r&#305;m. Nas&#305;l yapar&#305;m biliyor musunuz, sizden &#231;ok yard&#305;m istedim ama kusura bakmay&#305;n. Bunu da &#231;&#246;zerseniz her&#351;ey tamam olacak, &#231;ok te&#351;ekk&#252;rler
 
Üst