DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Hocam allah razı olsun, işe yaradıMerhaba.
Muhtemelen kodlar resimleri eklemeden önce sayfada bulunan diğer resimler siliyor.
Kodlarda ".delete" ile biten satır varsa silin.
Eğer olmazsa-yapamazsanız dosyanızı ekleyin kontrol edelim.
Muzaffer hocam, bir sorum daha olacak. Proformanın yukarısında iki logo bulunuyor. .delete kodunu sildiğim için kodları değiştirirken veya eklerken eski resimler arkada kalıyor. B1:B20 arasını pas geçmesini sağlayabilir miyim .delete kodunun.Merhaba.
Muhtemelen kodlar resimleri eklemeden önce sayfada bulunan diğer resimler siliyor.
Kodlarda ".delete" ile biten satır varsa silin.
Eğer olmazsa-yapamazsanız dosyanızı ekleyin kontrol edelim.
Public Function DosyaVarmi(dosyayolu As String) As Boolean
On Error GoTo Çıkış
If Not Dir(dosyayolu, vbDirectory) = vbNullString Then DosyaVarmi = True
Çıkış:
On Error GoTo 0
End Function
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [b:b]) Is Nothing Then Exit Sub
On Error GoTo Çıkış:
ActiveSheet.DrawingObjects.Delete
Dim ResimDosyaYolu As String
Dim Resim As Object
For i = 20 To 31
ResimDosyaYolu = ActiveWorkbook.Path & "\" & Range("b" & i) & ".jpg"
If DosyaVarmi(ResimDosyaYolu) Then
ResimDosyaYolu = ActiveWorkbook.Path & "\" & Range("b" & i) & ".jpg"
Else
ResimDosyaYolu = ActiveWorkbook.Path & "\yok.jpg"
End If
Set Resim = ActiveSheet.Pictures.Insert(ResimDosyaYolu)
With Range("j" & i)
Resim.Top = .Top
Resim.Left = .Left
Resim.Height = .Height
Resim.Width = .Width
End With
Next i
Çıkış:
End Sub
hocam altın üye olmadığım için dosya ekleyemiyorum sanırım. Ekran Alıntısı.PNG olarak geçiyor resimlerHücre adresine göre değil, resim adına göre yapılabilir.
Dosyanızı paylaşırsanız yapabiliriz.
Dosyanızda özel şeyler varsa onları silin.
Sadece Logolar kalsın. Yani sürekli sabit kalacak olan resimler kalsın.
Eğer dosyanız özel değilse tamamını paylaşın..
dosya.tc gibi bir paylaşım sitesine ekleyip linkini buraya kopyalayın.
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [b:b]) Is Nothing Then Exit Sub
On Error GoTo Çıkış:
Dim Bak As Integer
For Bak = DrawingObjects.Count To 1 Step -1
MsgBox Sayfa1.DrawingObjects.Count
If Not DrawingObjects(Bak).Name = "1 Resim" And Not DrawingObjects(Bak).Name = "2 Resim" Then
DrawingObjects(Bak).Delete
End If
Next
Dim ResimDosyaYolu As String
Dim Resim As Object
For i = 20 To 31
ResimDosyaYolu = ActiveWorkbook.Path & "\" & Range("b" & i) & ".jpg"
If DosyaVarmi(ResimDosyaYolu) Then
ResimDosyaYolu = ActiveWorkbook.Path & "\" & Range("b" & i) & ".jpg"
Else
ResimDosyaYolu = ActiveWorkbook.Path & "\yok.jpg"
End If
Set Resim = ActiveSheet.Pictures.Insert(ResimDosyaYolu)
With Range("j" & i)
Resim.Top = .Top
Resim.Left = .Left
Resim.Height = .Height
Resim.Width = .Width
End With
Next i
Çıkış:
End Sub
hocam teşekkürler fakat logolar silindi bende. Bende mi bir sorun var acabaPrivate Sub Worksheet_Change kodlarını aşağıdaki ile değiştirin.
Kod:Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, [b:b]) Is Nothing Then Exit Sub On Error GoTo Çıkış: Dim Bak As Integer For Bak = DrawingObjects.Count To 1 Step -1 MsgBox Sayfa1.DrawingObjects.Count If Not DrawingObjects(Bak).Name = "1 Resim" And Not DrawingObjects(Bak).Name = "2 Resim" Then DrawingObjects(Bak).Delete End If Next Dim ResimDosyaYolu As String Dim Resim As Object For i = 20 To 31 ResimDosyaYolu = ActiveWorkbook.Path & "\" & Range("b" & i) & ".jpg" If DosyaVarmi(ResimDosyaYolu) Then ResimDosyaYolu = ActiveWorkbook.Path & "\" & Range("b" & i) & ".jpg" Else ResimDosyaYolu = ActiveWorkbook.Path & "\yok.jpg" End If Set Resim = ActiveSheet.Pictures.Insert(ResimDosyaYolu) With Range("j" & i) Resim.Top = .Top Resim.Left = .Left Resim.Height = .Height Resim.Width = .Width End With Next i Çıkış: End Sub
hocam çok teşekkür ederim, ellerinize sağlıkBen Resimlerin isimlerini değiştirmiştim ondan kaynaklanıyor.
Kodlarda bulunan1 Resim ve 2 Resim yerine 4 Resim, 17 Resim yazın.