[Yardım]  VBA ile İlgili Kısa Bir Soru

VBA Makrolar ile ilgili sormak istedikleriniz, yapmak istedikleriniz hakkında yardım alabileceğiniz bölümdür.

VBA ile İlgili Kısa Bir Soru

İleti#1)  mermer » 19 May 2020 14:41

Merhaba arkadaşalr yeni VBA öğrenmeye başladım. Acemiyim çok kısa bir sorum olacak. Daha tam bitiremedim çünkü takıldım. Şimdi, Elimde ürünlerin markalarına ait onlarca csv dosyası var ARCLK BEKO GURUİNDG VBE... isimlerde Aşağıdaki gibi bir şey yazdım.

Kod Arclk csv doyasını açıyor ";" le ayrılmış csv dosyasında metni sutunlara dönüştürüyor, en baş 2. ve 3. sıraya iki satır ekliyor, eklenen iki satıra satır başlıkları ve değerlerini ekliyor, tablonun tümünü kopyalıyor ve aktif excel sayfasına satırları sutunlara dönüşterecek şekilde ters yapıştırıyor.

Ama gördüğünüz gibi diğer dosya için aynı işlemi yapmak için Arclk yazan her değerin vestl olarak değiştirilmesi geriyor.
Ayrıca son kopyalama işlemi hep aynı sayfaya yapılıyor

Şimdi yapmak istediğim For each next ya da for next döngüsüyle elimdeki .csv dosyalarının ismin yazdığı listeyi bu koda tanıtmak ve döngü her takraladığında Arclk değerinin vestl , vestl değerinin gurinding yani mevcut değrlerin listedeki diğer değerlere dönüşerek kodun tekrar etmesi ve mevcut excel çalışma kitabında yeni sayfa açarak sorgulama yaptığı değer (arclk) ismiyle yeni sayfada kaydetmesi.... Yeni sayfa ismiyle yazdırma olayını araştırıyorum onu kotarabilirim sanki :) ama bir .csv dosyası isim listesine bağlı döngü olayını halledebileceğimi sanmıyorum yardımcı olur musunuz.


Sub er()
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("Toplu")
Application.Workbooks.Open ("C:\Users\xxxxx\Desktop\me\ARCLK.csv")
Sheets("ARCLK").Range("A1").CurrentRegion.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, Semicolon:=True
Sheets("ARCLK").Rows("2:2").Insert Shift:=xlDown
Sheets("ARCLK").Rows("3:3").Insert Shift:=xlDown
Sheets("ARCLK").Cells(2, 1) = "ÜRÜN ADI"
Sheets("ARCLK").Range("B2:AW2") = "ARCLK"
Sheets("ARCLK").Range("A1").CurrentRegion.Copy
Sheets.Add After:=Activesheets.Range("A1").PasteSpecial xlPasteValues, Transpose:=True
Workbooks("ARCLK.csv").Save
Workbooks("ARCLK.csv").Close
End Sub
Kullanıcı avatarı
mermer
 
Kayıt: 19 May 2020 14:19
Meslek: İşçi
Yaş: 26
İleti: 1
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İZMİR

Cevap: VBA ile İlgili Kısa Bir Soru

İleti#2)  Tarkan VURAL » 20 May 2020 01:49

Merhaba, sitemize hoş geldiniz. Eğer csv dosyalarını ve vereceğim kodların çalışacağı Excel dosyasını aynı klasörde tutarsanız, döngü aşağıdaki biçimde kurulabilir. Kodları VBE penceresini açarak F8 ile adım adım giderek denetleyebilirsiniz. Kolay gelsin.

Kod: Tümünü seç
Sub er()
Dim sh As Worksheet, bu As Workbook
Set bu = ThisWorkbook
Set sh = ThisWorkbook.Sheets("Toplu")
For Each dosya In CreateObject("scripting.filesystemobject").getfolder(ThisWorkbook.Path).Files
nokta = InStrRev(dosya.Name, ".")
dosyaadi = Left(dosya.Name, nokta - 1)
uzanti = Mid(dosya.Name, nokta + 1, Len(dosya.Name))
csvdosya = ThisWorkbook.Path & "\" & dosyaadi & "." & uzanti
If uzanti = "csv" Or uzanti = "CSV" Or uzanti = "Csv" Then
Application.Workbooks.Open (csvdosya)

' Diğer Kodlarınız

End If
Next
End Sub
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Resim
www.tarkanvural.com.tr

İnnâ lillâhi ve innâ ileyhi raciûn
Şüphesiz ki; biz Allah’a âidiz ve vakti geldiğinde O’na döndürüleceğiz.

HasbunAllâhu ve nimel vekîl
Bize Allah yeter. O ne güzel vekildir.


ExcelVBA.NET' e katkıda bulunmak ister misiniz ?
Kullanıcı avatarı
Tarkan VURAL
Yönetim Kurulu
 
Adı Soyadı:Tarkan VURAL
Kayıt: 14 Haz 2008 18:27
Konum: @tarkanvural73
Meslek: LUU, Database Expert, Senior Software Specialist, Developer
Yaş: 46
İleti: 27311
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul - Beylikdüzü


Forum Genel Makro Soruları

Online Kullanıcılar

Bu forumu görüntüleyenler: Kayıtlı kullanıcı yok ve 1 misafir

Bumerang - Yazarkafe