ThisWorkbook.Path & "\" altına makro ile a2 değeri ile klasör aç

Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
ThisWorkbook.Path & "\" altına makro ile a2 değeri ile klasör aç
komutunu makro ile nasıl yazarım?
Saygılarımla
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Aşağıdaki gibi deneyiniz.:cool:
Kod:
Range("A2").value & "\"
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
yanlış yazdım hocam pardon,
diyelim ki;
a2 de orion
Thiswork.path= c:\deneme

ise ve
c:\deneme\orion yolu yoksa
c:\deneme altına orion klosörünü oluştur...
makro ile denedim ama olmadı :(
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Aşağıdaki gibi deneyiniz.:cool:
Kod:
yol=ThisWorkbook.Path & "\"  & range("A2").value & "\"
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
hocam klasör oluşturmak istiyorum olmuyor
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Aşağıdaki kodları kendi dosyanıza göre ayarlayınız.:cool:
Kod:
Sub FolderExists()
Dim TargetFolder As String
Set fs = CreateObject("Scripting.FileSystemObject")
TargetFolder = "C:\Evren"
If not fs.FolderExists(TargetFolder) Then
ChDir "C:\"
MkDir("Evren")
Else
MsgBox "Klasör var!"
End if
End Sub
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Kod:
Sub FolderExists()
Dim TargetFolder As String
Set fs = CreateObject("Scripting.FileSystemObject")
yol = ThisWorkbook.Path & "\"                       ' mevcut çalışma kitabının olduğu yol
TargetFolder = yol
If Not fs.FolderExists(TargetFolder) Then
ChDir yol
MkDir ("Evren")
Else
MsgBox "Klasör var!"
End If
End Sub
yanlış olan ne?
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Aşağıdaki kodu deneyiniz.:cool:
Kod:
Sub FolderExists()
Dim TargetFolder As String
Set fs = CreateObject("Scripting.FileSystemObject")
yol = ThisWorkbook.Path & "\" ' mevcut çalışma kitabının olduğu yol
TargetFolder = yol & "Evren"
If Not fs.FolderExists(TargetFolder) Then
ChDir yol
MkDir ("Evren")
Else
MsgBox "Klasör var!"
End If
End Sub
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
hocam bu işi yapıp yapamamak ta teddüdüm var
şimdi a2
01/10/2007
önce yıla bakacak aktif çalışma kitabının olduğu klasörde yıl kalsörü varmı yani ....\2007 yoksa oluşturacak
sonra
....\2007\altında ay klasörü varmı yoksa oluşturacak
....\2007\10 klasörü varmı yoksa oluşturacak
ben denemesine denerimde mantığı kavrayamadım
 

baydeniro

Altın Üye
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Özür Dilerim

Konuya pat diye daldım ama bu konuya çok benzeyen ve hep benim kafamı kurcalayan bir sorum var.

Sub KOPYA ()
ADRES = "TEXT;C:\Documents and Settings\cati\Desktop\DATA1022.txt"
With ActiveSheet.QueryTables.Add(Connection:= _
ADRES, Destination:=Range("A1"))
.TextFileOtherDelimiter = ";"
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1)
.Refresh BackgroundQuery:=False
End With
End Sub

makrosunda DATA1022 dosya adı, hergün değişerek gelecek. Yani yarın DATA1023 olacak ve arandığı katalog altında adı DATA ile başlayan dosya 1 den fazla olmayacak. Bu durumda aranacak dosyanın DATA ile başlayan dosya olması özelliğini makroya verebilmek için kodun nasıl olması gerekir ?

Yardımlarınız için teşekkürler...
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
yapmak istediğim günlük sayfamdaki verileri bordro sayfasına aktarıyorum şu hali ile çalışıyor

Arşivlemek için taslağa yaz aynı çalışma kitabınının sonuna ggaayy formatında kopyala yapıyorum.

yapmak istediğim ise taslak sayfasını yıl ve ay formatında arşivlemek
yani
Arşivlemek için taslağa yaz aynı çalışma kitabınının bulunduğu klasörün altındaki yy\aa klasöründeki aayyyy çalışma sayfasınınsonuna ggaayy formatında kopyala demek. umarım anlatabildim ilginize şimdiden teşekkür eder saygılar sunarım.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Konuya pat diye daldım ama bu konuya çok benzeyen ve hep benim kafamı kurcalayan bir sorum var.

Sub KOPYA ()
ADRES = "TEXT;C:\Documents and Settings\cati\Desktop\DATA1022.txt"
With ActiveSheet.QueryTables.Add(Connection:= _
ADRES, Destination:=Range("A1"))
.TextFileOtherDelimiter = ";"
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1)
.Refresh BackgroundQuery:=False
End With
End Sub

makrosunda DATA1022 dosya adı, hergün değişerek gelecek. Yani yarın DATA1023 olacak ve arandığı katalog altında adı DATA ile başlayan dosya 1 den fazla olmayacak. Bu durumda aranacak dosyanın DATA ile başlayan dosya olması özelliğini makroya verebilmek için kodun nasıl olması gerekir ?

Yardımlarınız için teşekkürler...
emin değilim ama dataxxx leri nasıl oluşturduğunuz önemli galiba excel mi? elle mi?
 

baydeniro

Altın Üye
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Teşekkürler hsayar. DATA ile başlayan text dosyalarının rakamsal kısımları tarihe göre dosyayı oluşturan özel bir prgramdan geliyor. Yani manuel veya excel ile ilgili değil.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Konuya pat diye daldım ama bu konuya çok benzeyen ve hep benim kafamı kurcalayan bir sorum var.

Sub KOPYA ()
ADRES = "TEXT;C:\Documents and Settings\cati\Desktop\DATA1022.txt"
With ActiveSheet.QueryTables.Add(Connection:= _
ADRES, Destination:=Range("A1"))
.TextFileOtherDelimiter = ";"
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1)
.Refresh BackgroundQuery:=False
End With
End Sub

makrosunda DATA1022 dosya adı, hergün değişerek gelecek. Yani yarın DATA1023 olacak ve arandığı katalog altında adı DATA ile başlayan dosya 1 den fazla olmayacak. Bu durumda aranacak dosyanın DATA ile başlayan dosya olması özelliğini makroya verebilmek için kodun nasıl olması gerekir ?

Yardımlarınız için teşekkürler...
Aradığınız dosyaları aşağıdaki gibi sorgulayabilirsiniz.:cool:
Kod:
dosya = "C:\Documents and Settings\cati\Desktop\DATA1022.txt"
If Dir(dosya) = "" Then
    MsgBox "DOSYA YOK"
    Else
    MsgBox "DOSYA VAR"
End If
 

baydeniro

Altın Üye
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Sayın Orino2 ilginiz için çok teşekkür ederim. Bu koddan beklentimiz şu : İlgili yolda buluna ve DATA ile başlayan dosyanın devamı ne olursa olsun bu DATA dosyasını açıp kopyalaması. (Yazılı olan zaten ilgili dosyayı aç, kopyala işini görüyor).
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Sayın Orino2 ilginiz için çok teşekkür ederim. Bu koddan beklentimiz şu : İlgili yolda buluna ve DATA ile başlayan dosyanın devamı ne olursa olsun bu DATA dosyasını açıp kopyalaması. (Yazılı olan zaten ilgili dosyayı aç, kopyala işini görüyor).
Aşağıdaki kodu denermisiniz.:cool:
Kod:
Sub KOPYA()
dosya = "C:\Documents and Settings\cati\Desktop\*.txt"
dosyalar = Dir(dosya)
Do While dosyalar <> ""
    If Left(dosyalar, 4) = "DATA" Then
        ADRES = "TEXT;C:\Documents and Settings\cati\Desktop\" & dosyalar
        With ActiveSheet.QueryTables.Add(Connection:= _
        ADRES, Destination:=Range("A1"))
            .TextFileOtherDelimiter = ";"
            .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1)
            .Refresh BackgroundQuery:=False
        End With
        dosyalar = Dir
        Exit Sub
    End If
Loop
End Sub
 
Son düzenleme:

baydeniro

Altın Üye
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Orion2 kod, dosyalar Dir(dosya) aşamasında takılıyor.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
yapmak istedi&#287;im g&#252;nl&#252;k sayfamdaki verileri bordro sayfas&#305;na aktar&#305;yorum &#351;u hali ile &#231;al&#305;&#351;&#305;yor

Ar&#351;ivlemek i&#231;in tasla&#287;a yaz ayn&#305; &#231;al&#305;&#351;ma kitab&#305;n&#305;n&#305;n sonuna ggaayy format&#305;nda kopyala yap&#305;yorum.

yapmak istedi&#287;im ise taslak sayfas&#305;n&#305; y&#305;l ve ay format&#305;nda ar&#351;ivlemek
yani
Ar&#351;ivlemek i&#231;in tasla&#287;a yaz ayn&#305; &#231;al&#305;&#351;ma kitab&#305;n&#305;n&#305;n bulundu&#287;u klas&#246;r&#252;n alt&#305;ndaki yy\aa klas&#246;r&#252;ndeki aayyyy &#231;al&#305;&#351;ma sayfas&#305;n&#305;nsonuna ggaayy format&#305;nda kopyala demek. umar&#305;m anlatabildim ilginize &#351;imdiden te&#351;ekk&#252;r eder sayg&#305;lar sunar&#305;m.
hallettim :)
Kod:
Sub FolderExistsYil()
Dim TargetFolder As String
Dim s1 As Worksheet, s2 As Worksheet, s3 As Worksheet
Set s1 = Sheets("g&#252;nl&#252;k")
Set s2 = Sheets("tsb")
Set s3 = Sheets("devirler")
Set s4 = Sheets("Ayl&#305;k")
A = WorksheetFunction.Text(s1.Cells(1, 1), "yyyy")
b = WorksheetFunction.Text(s1.Cells(1, 1), "mmyyyy")
Set fs = CreateObject("Scripting.FileSystemObject")

'---------------Y&#305;l
yol = ThisWorkbook.Path & "\" ' mevcut &#231;al&#305;&#351;ma kitab&#305;n&#305;n oldu&#287;u ve alt klas&#246;r a&#231;&#305;lacak yol
TargetFolder = yol & A         ' A&#231;&#305;lacak klas&#246;r ad&#305; ile birle&#351;imi
If Not fs.FolderExists(TargetFolder) Then        'KONTROL
ChDir yol: MkDir A: MsgBox A & " Klas&#246;r&#252; olu&#351;turuldu.!"  'klas&#246;re git, olu&#351;turma mesaj&#305; ver
Else
MsgBox A & " Klas&#246;r&#252; var!"   'var mesaj&#305; var
End If

'---------------Ay
yol = ThisWorkbook.Path & "\" & A ' mevcut &#231;al&#305;&#351;ma kitab&#305;n&#305;n oldu&#287;u yol
TargetFolder = yol & "\" & b
If Not fs.FolderExists(TargetFolder) Then
ChDir yol
MkDir b
MsgBox b & " Klas&#246;r&#252; olu&#351;turuldu.!"
Else
MsgBox b & " Klas&#246;r&#252; var!"
End If

End Sub
 
Son düzenleme:

baydeniro

Altın Üye
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Orion2 teşekkürler, dosyalar = Dir(dosya) şeklindeki düzeltme çalıştı. Bu aşama güzel oldu. Şu şekilde ki bir düzeltme nasıl yapılabilir. İsmi aynı tanımla başlamayan birden fazla dosya var.

If Left(dosyalar, 4) = "KGID" Then

kısmını 4 ü 2, DATA'yı MT yaparak tekrar makroyu çalıştırdığımda makro kısır döngüye giriyor. Yani aynı katalog altında 1 den fazla ve başlangıç tanımları birbirinden farklı olan dosyalar olunca makronun revize ettiğimizde arzu ettiğimiz dosyanın aktarılması gerçekleşmiyor.
 
Üst