[]

Ufak Bir Makro Sorusu

Merhabalar,

Ekleyeceğim kodda bir dosyadan değeri alıp diğer dosyaya yapıştırıp, sonra dosyayı farklı kaydedip kopyaladığım değeri dosya adına verip kaydediyorum. Bu dosyanın içinde 5 tane çalışma sayfası var ( adlarına 1,2,3,4,5 diyelim). Bunlardan 1,2,3,4 olanları silip, 5 olanın da içindeki tüm hücreleri kopyalayıp değer yapıştır yapmak istiyorum. Bilen arkadaş omuz verirse memnun olurum.

-------------------------------------------------------------------------------

Sub ExcelDosyalariOlustur()
Dim wb1 As Workbook, wb2 As Workbook
Dim ws1 As Worksheet, ws2 As Worksheet
Dim hedefHucresi As Range
Dim listeHucresi As Range
Dim isim As String

' Birinci dosyayı açın ve çalışma kitaplarını ve sayfalarını belirleyin
Set wb1 = Workbooks.Open("C:\Masaüstü\liste.xlsx") ' liste.xlsx'nin gerçek yolunu belirtin
Set ws1 = wb1.Sheets("Sayfa1") ' Sayfa adını belirtin

' İkinci dosyayı açın ve çalışma kitaplarını ve sayfalarını belirleyin
Set wb2 = Workbooks.Open("C:\Masaüstü\anadosya.xlsx") ' anadosya.xlsx'nin gerçek yolunu belirtin
Set ws2 = wb2.Sheets("İşemri") ' Sayfa adını belirtin

' Hedef hücreyi belirleyin (örneğin, B3 hücresi)
Set hedefHucresi = ws2.Range("B3")

' Birinci dosyadaki listenin kaç satır olduğunu belirleyin
Dim satir As Integer
satir = ws1.Cells(Rows.Count, 1).End(xlUp).Row

' Her bir satır için yeni bir Excel dosyası oluşturun
For i = 1 To satir
' Birinci dosyadan değeri alın
Set listeHucresi = ws1.Cells(i, 1)
isim = listeHucresi.Value

' İkinci dosyadaki hedef hücreye değeri kopyalayın
hedefHucresi.Value = listeHucresi

' Yeni bir Excel dosyası oluşturun ve kaydedin
wb2.SaveAs "C:\Masaüstü\" & listeHucresi & ".xlsx"


Next i

' Dosyaları kapatın
wb1.Close SaveChanges:=False
wb2.Close SaveChanges:=False
End Sub

 
aşağıdaki kodları senin kodun içinde münasip bir yere yazıver


Application.ScreenUpdating= False '(soldaki iki satırı sub yazan satırın altına yaz)
Application.DisplayAlerts = False

Sheets(1).Delete
Sheets(2).Delete
Sheets(3).Delete
Sheets(4).Delete

dim ws a s worksheet
for each ws in activeworkbook.worksheets
ws.range("a1:zz10000").copy
ws.range("a1:zz10000").pastespecial xlpastevalues
next ws
application.cutcopymode=false

Application.DisplayAlerts = True '(soldaki iki satırı end sub'ın üstüne yaz)
Application.ScreenUpdating= True
  • pislick0  (25.02.24 01:08:29) 
1
buraya yazılanların hakları Sir Anthony Hopkins'e aittir.
yazan eden compumaster, ilgilenen eden fader
modere edenler angelus, Artibir, aychovsky, baba jo, basond, compumaster, deckard, duyulmasi gerektigi kadar, fader, fraise, groove salad, kahvegibi, kaymaktutmayansicaksut, kibritsuyu, monstro, pandispanya, robin, ron dennis
bu sitede yazılanların hiçbiri doğru değildir. site içeriği küçükler için sakıncalı olabilir. yazılardan yazarları sorumludur. kaynak göstermeden alıntılanamaz. devlet tarafından atanmış bir kurumun internet üzerinde kimin hangi bilgiye ulaşıp ulaşamayacağına karar vermesi insan haklarına aykırıdır. web siteleri kullanıcıların istekleri doğrultusunda bağlandıkları yerlerdir. kullanıcılar isterlerse bir web sitesine bağlanmayabilirler. bu güçleri ve imkanları mevcuttur. bir kullanıcı bir siteye bağlanmak istiyorsa bu onun tercihi ve hakkıdır. bağlanmak istemiyorsa bu yine onun tercihi ve hakkıdır. halkın kendisine hizmet etmesi için görevlendirdiği kurumlar hadlerini aşıp halka neye ulaşıp ulaşmayacağını bilmeyen cahil cühela muamelesi edemezler. ebeveynlerin çocuklarını sakıncalı içeriklerden koruması için çok sayıda bedava ve ücretli yazılım mevcuttur. bu yazılımlar bir web tarayıcısını kullanmaktan daha karmaşık teknik bilgi gerektirmemektedir. devletin milletini küçük düşürmesi ve ebleh yerine koyması yasaktır. Skimlinks ile linkler üzerinden yönlendirme payı alınmaktadır.