-
- Destek
-
-
Özel Arama
![]() |
EfeM yazdı:Merhaba,
Resim özelliklerini eklerken, ActiveCell özelliği yerine birleştirilmiş aralığının Range özelliğinden yararlanarak olayı çözebilirsiniz.
Örnek;
Dim Cs as Worksheet
Dim Rng as Range
set Cs=ThisWorkbook.Sheets("Sayfa1")
set Rng=Cs.Range("A1:J1")
Buradaki Rng değişkeninin genişlik, yükseklik gibi özelliklerini kullanabilirsiniz.
Kolay gelsin.
EfeM yazdı:Merhaba,
Kodu aşağıdaki gibi değiştirdim. Anladığım kadarıyla sayfayı kendiniz ekleyip resim yapıştıracağınız hücreleri kendiniz birleştiriyorsunuz. Bu işinizi görebilir.
Sub resimEkle()
Dim sPicture As String, Cs As Worksheet, Rng As Range
Set Cs = ActiveSheet
Çok teşekkür ederim ağda kimse eklediğim resimleri göremiyordu şimdi görünüyor çok çok sağolun.
ActiveCell.Select
Set Rng = Cs.Range(Selection.Address)
sPicture = Application.GetOpenFilename _
("Pictures (*.gif; *.jpg; *.bmp; *.tif), *.gif; *.jpg; *.bmp; *.tif", _
, "Select Picture to Import")
If sPicture = "False" Then Exit Sub
ActiveSheet.Shapes.AddPicture sPicture, msoFalse, msoCTrue, Rng.Left + 2, Rng.Top + 2, Rng.Width - 4, Rng.Height - 4
End Sub
Kolay gelsin.
muzos80 yazdı:EfeM yazdı:Merhaba,
Kodu aşağıdaki gibi değiştirdim. Anladığım kadarıyla sayfayı kendiniz ekleyip resim yapıştıracağınız hücreleri kendiniz birleştiriyorsunuz. Bu işinizi görebilir.
Sub resimEkle()
Dim sPicture As String, Cs As Worksheet, Rng As Range
Set Cs = ActiveSheet
Çok teşekkür ederim ağda kimse eklediğim resimleri göremiyordu şimdi görünüyor çok çok sağolun.
ActiveCell.Select
Set Rng = Cs.Range(Selection.Address)
sPicture = Application.GetOpenFilename _
("Pictures (*.gif; *.jpg; *.bmp; *.tif), *.gif; *.jpg; *.bmp; *.tif", _
, "Select Picture to Import")
If sPicture = "False" Then Exit Sub
ActiveSheet.Shapes.AddPicture sPicture, msoFalse, msoCTrue, Rng.Left + 2, Rng.Top + 2, Rng.Width - 4, Rng.Height - 4
End Sub
Kolay gelsin.
Miraç CAN yazdı:Tabii ki mümkün,
Bir resim seçeceksiniz ve seçtiğiniz resmi sayfadan seçeceğiniz birleştirilmiş hücrelere eklenmesini istiyorsunuz, doğru değil mi?
Ve her seçilen alana aynı resim eklenecek.
Excel dosyanızda işlemin uygulanmayacağı sayfalar var ise bunların isimleri, ya da uygulanacak sayfa isimleri veya varsa bir sistematiğini verirseniz daha pratik olacaktır.
wexulans yazdı:her sayfada (u2:ae6) birleştirilmiş hücrelerim mevcut
Miraç CAN yazdı:wexulans yazdı:her sayfada (u2:ae6) birleştirilmiş hücrelerim mevcut
Birleştirilmiş tek bir alan mı, birden fazla birleştirilmiş alan mı?
EfeM yazdı:Merhabalar,
Ben de kendimce sayfa isimlerini bir diziye atarak düzenlemiştim kodu ama benzeri düzenlemeyle hücre aralıkları için de şartlandırma yapabilirsiniz.
Sub resimEkle()
Dim sPicture As String, Cs As Worksheet, Rng As Range
'Set Cs = ActiveSheet
Dim diziSayfalar() As String
diziSayfalar = Split("Sayfa1,Sayfa2,Sayfa3")
sPicture = Application.GetOpenFilename _
("Pictures (*.gif; *.jpg; *.bmp; *.tif), *.gif; *.jpg; *.bmp; *.tif", _
, "Select Picture to Import")
If sPicture = "False" Then Exit Sub
For Each Cs In ThisWorkbook.Sheets
ActiveCell.Select
With Cs
Set Rng = .Range("u2:ae6")
Rng.Merge
.Shapes.AddPicture sPicture, msoFalse, msoCTrue, Rng.Left + 2, Rng.Top + 2, Rng.Width - 4, Rng.Height - 4
End With
Next
End Sub
EfeM yazdı:Bu kodu inceleyebilirsin. Aynı resimleri kullanığını düşünerek yeniden düzenledim.
Sub resimEkle()
Dim sPicture As String, Cs As Worksheet, Rng As Range, Rng2 As Range, z%
Dim diziSayfalar() As String
diziSayfalar = Split("Sayfa1,Sayfa2,Sayfa3", ",")
sPicture = Application.GetOpenFilename _
("Pictures (*.gif; *.jpg; *.bmp; *.tif), *.gif; *.jpg; *.bmp; *.tif", _
, "Select Picture to Import")
If sPicture = "False" Then Exit Sub
For z = 0 To UBound(diziSayfalar)
For Each Cs In ThisWorkbook.Sheets
With Cs
If .Name = diziSayfalar(z) Then
Select Case .Name
Case "Sayfa1"
Set Rng = .Range("a7:d10")
Case "Sayfa2"
Set Rng = .Range("b10:e15")
Case "Sayfa3"
Set Rng = .Range("b10:e15")
Set Rng2 = .Range("g10:k15")
.Shapes.AddPicture sPicture, msoFalse, msoCTrue, Rng2.Left + 2, Rng2.Top + 2, Rng2.Width - 4, Rng2.Height - 4
Case Else
MsgBox "Resim eklemek için Adres değeri belirtilmemiş"
Set Rng = Nothing
Exit For
End Select
.Activate
Rng.Merge
.Shapes.AddPicture sPicture, msoFalse, msoCTrue, Rng.Left + 2, Rng.Top + 2, Rng.Width - 4, Rng.Height - 4
Exit For
End If
End With
Next
Next z
End Sub
wexulans yazdı:Miraç CAN yazdı:wexulans yazdı:her sayfada (u2:ae6) birleştirilmiş hücrelerim mevcut
Birleştirilmiş tek bir alan mı, birden fazla birleştirilmiş alan mı?
bazı sayfalarda birden fazla alan bazı sayfalarda tek bir alan, bu alanları makro koduna tek tek eklemek istiyorum.
Şöyle açıklayayım excelde yazdırılacak belli dosya sayfaları mevcut ve bu sayfaların sağ üst köşelerine logo eklemek istiyorum. sayfa 1 de sadece 1 yaprak uzunlugunda yazı oldugundan sag üst köşedeki birleştirilmiş hücreye bir adet belki ama diğer sayfalarda birden fazla yaprak oldugundan onlarda her yeni sayfadaki sag üst köşeye gelen kısma birer logo şeklinde resimler makro ile eklesin istiyorum.
Eskiden bunu ben sayfa bir e resim ekle diyerek resmi ekliyordum ve kopyala makrosu kaydederek tek tek aynı boyuttaki birleştirilmiş hücreyi istediğim her sayfaya kopyala yapıştır makrosuyla çoğaltıyordum ama bu şekilde makro çok kasıyor ve uzun sürüyor. O yüzden bu şekilde yapabilrmiyim diye araştırmaktaydım.
EfeM yazdı:Ben çalıştırdıktan sonra gönderdim kodları size.
Örnek dosyayı da ekliyorum.
Bu forumu görüntüleyenler: Google Adsense [Bot], işsiz123 ve 3 misafir