Çözüldü Resim makrosu sorunu.

bycakir

Altın Üye
Katılım
1 Aralık 2017
Mesajlar
222
Excel Vers. ve Dili
Microsoft Office 365 ProPlus
Altın Üyelik Bitiş Tarihi
18-01-2025
merhabalar,

öncelikle düşüncemi aktarayım.

istediğim . excelde personel kayıtlarını ekledikce son satırda yazdığım sicil numarasına göre son eklenen personelin resmini görmek istiyorum. bunu aşağıdaki kod ile yaptım. fakat şöyle bir sorunum oluştu her satır daki sicilin resmini alıyor üst üste ekliyor en son resmi getiriyor. benim istediğim son eklenen sicile göre resim getirsin bir öncekini silsin "
For satır = 3 To 6000
"bu yerden şüphelenmekteyim. yardımlarınızı beklemekteyim.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, [E:E]) Is Nothing Then Exit Sub

'hata kontrolü
On Error Resume Next


'Resimleri Sil

ActiveSheet.DrawingObjects.Delete

'Resim yolunun bulunması

Dim ResimYolu As Variant
Dim Resim As Object

For satır = 3 To 6000


ResimYolu = "\\Share\revir$\PERSONEL_RESIMLERI\Güncel resimler (silinmeyecek)\" & Range("e" & satır) & ".jpg"

'Resmi oluştur
Set Resim = ActiveSheet.Pictures.Insert(ResimYolu)

'Resmi boyutlandır

With Range("C1")
Resim.Top = .Top
Resim.Left = .Left
Resim.Height = .Height
Resim.Width = .Width
End With

Next



    With Target
        If .Row < 1 Then Exit Sub
        .Offset(1, -2) = ""
        If .Value = "" Then Exit Sub
        .Offset(0, -2) = Date
               
         End With
   

    With Target
        If .Row < 1 Then Exit Sub
        .Offset(1, -1) = ""
        If .Value = "" Then Exit Sub
        .Offset(0, -1) = Time
         
    End With

End Sub
 
Son düzenleme:

turist

Destek Ekibi
Destek Ekibi
Katılım
18 Kasım 2009
Mesajlar
5,102
Excel Vers. ve Dili
2013 64Bit
English
Kodunuzu aşağıdaki gibi uygulayıp , deneyin.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [E:E]) Is Nothing Then Exit Sub
'hata kontrolü
On Error Resume Next
'Resimleri Sil
ActiveSheet.DrawingObjects.Delete
'Resim yolunun bulunması
Dim ResimYolu As Variant
Dim Resim As Object
ResimYolu = "\\Share\revir$\PERSONEL_RESIMLERI\Güncel resimler (silinmeyecek)\" & Range("e" & Cells(Rows.Count, "E").End(3).Row) & ".jpg"
'Resmi oluştur
Set Resim = ActiveSheet.Pictures.Insert(ResimYolu)
'Resmi boyutlandır
With Range("C1")
Resim.Top = .Top
Resim.Left = .Left
Resim.Height = .Height
Resim.Width = .Width
End With
    With Target
        If .Row < 1 Then Exit Sub
        .Offset(1, -2) = ""
        If .Value = "" Then Exit Sub
        .Offset(0, -2) = Date
         End With
    With Target
        If .Row < 1 Then Exit Sub
        .Offset(1, -1) = ""
        If .Value = "" Then Exit Sub
        .Offset(0, -1) = Time
    End With
End Sub
 

bycakir

Altın Üye
Katılım
1 Aralık 2017
Mesajlar
222
Excel Vers. ve Dili
Microsoft Office 365 ProPlus
Altın Üyelik Bitiş Tarihi
18-01-2025
sorunum çözüldü teşekkürler.
 

turist

Destek Ekibi
Destek Ekibi
Katılım
18 Kasım 2009
Mesajlar
5,102
Excel Vers. ve Dili
2013 64Bit
English
Sağolun.
 
Üst