• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Açık olan dosyadan istenilen satır veya sutün bilgilerini makro ile secip almak.

Katılım
22 Ekim 2012
Mesajlar
311
Excel Vers. ve Dili
Office 2016 Türkçe
Merhabalar,
Bu konu ile ilgili başlık açtım ama bilgi alamadım. Forumu araştırdım ama çözemedim. Ekteki bordro dosyasından veri almak istiyorum ama sırayla veri almayacağım. Bazı gereksiz satır ve sutun var onları eleyip diğer bilgileri dosyadan çekmek istiyorum.

Herkese çok teşekkürler.
 

Ekli dosyalar

Merhabalar,
Bu konu ile ilgili başlık açtım ama bilgi alamadım. Forumu araştırdım ama çözemedim. Ekteki bordro dosyasından veri almak istiyorum ama sırayla veri almayacağım. Bazı gereksiz satır ve sutun var onları eleyip diğer bilgileri dosyadan çekmek istiyorum.

Herkese çok teşekkürler.

Kod:

Kod:
Sub kapalıverial()
Kaynak = Application.GetOpenFilename("All Files (*.*),*.*.")
If Kaynak = False Then
MsgBox "Veri alınacak dosyayı seçmediniz.", vbInformation, "DİKKAT"
Exit Sub
Else
End If
Rows("6:500").ClearContents
veri1 = Cells(1, 1).Value
veri2 = Cells(1, 2).Value
veri3 = Cells(1, 3).Value
 
Dosya = Dir(Kaynak)
yer = Mid(Kaynak, 1, Len(Kaynak) - Len(Dir(Kaynak)))
tmp = Dir(Kaynak)
deg = "'" & yer & "[" & tmp & "]" & x & "'!R"
Cells(1, 1).Value = yer
Cells(1, 2).Value = tmp
Cells(1, 3).Value = "=" & deg & 1 & "C" & 1
Cells(1, 3).Replace What:="=", Replacement:=""
alan1 = Worksheets(ActiveSheet.Name).Cells(1, 3).Value
For k = 1 To Len(alan1)
If Mid(alan1, k, 1) = "]" Then
yer = (Len(alan1) - 6 - k)
zaman = Mid(alan1, k + 1, yer)
End If
Next
Cells(1, 3).Value = zaman
sayfaadi = zaman
Kalasor = Cells(1, 1).Value
Dosya = Cells(1, 2).Value
sayfaadi = Cells(1, 3).Value
deg = "'" & Kalasor & "[" & Dosya & "]" & sayfaadi & "'!R"
sat = Application.ExecuteExcel4Macro("COUNTA('" & Kalasor & "[" & Dosya & "]" & sayfaadi & "'!C8)")
satir = 10
sat1 = 6
For r = 1 To sat - 2
k = 0
For i = 1 To 26
If i <> 7 Then
k = k + 1
Cells(sat1, k).Value = ExecuteExcel4Macro(deg & satir & "C" & i)
End If
Next i
sat1 = sat1 + 1
satir = satir + 3
Next r
Cells(1, 1).Value = veri1
Cells(1, 2).Value = veri2
Cells(1, 3).Value = veri3
MsgBox "işlem tamam"
End Sub
 

Ekli dosyalar

Halit Bey Merhaba,
Emeğinize sağlık. Denedim veri al dediğimde sanırım sonsuz döngü içinde sürekli aktarım yapıyor. Bilgileri alacağı dosya bittiği yerde bu da bitirsin devam etmesin.

Herşey için teşekkürler.
 
Halit Bey Merhaba,
Emeğinize sağlık. Denedim veri al dediğimde sanırım sonsuz döngü içinde sürekli aktarım yapıyor. Bilgileri alacağı dosya bittiği yerde bu da bitirsin devam etmesin.

Herşey için teşekkürler.

Kodun ilgili yerine aşağıdaki kırmızı yeri ekleyin gelen mesajda ne uyarısı veriyor.

Kod:
sat = Application.ExecuteExcel4Macro("COUNTA('" & Kalasor & "[" & Dosya & "]" & sayfaadi & "'!C8)")
[COLOR=red]MsgBox sat
[/COLOR]satir = 10
 
Üstadım seni yoruyorum ama hakkını ödeyemem çok teşekkür ederim.
HATA KODU: 983054 veriyor.
Verileri yazarken hücre kenar çizgileri çizebilir mi acaba.
Saygılar,
 
Üstadım seni yoruyorum ama hakkını ödeyemem çok teşekkür ederim.
HATA KODU: 983054 veriyor.
Verileri yazarken hücre kenar çizgileri çizebilir mi acaba.
Saygılar,

Kod bende çalışıyor

Uygulama

(kapalı dosyadan veri al.xls) dosyası açık olsun ve (Bordro.xls) dosyası kapalı olsun sonra (veri al) düğmesine tıkla.
 

Ekli dosyalar

Merhaba Halit Bey,
Dediğiniz gibi yaptım yine olmadı. Bordroyu aktarıyor ancak bordronun son satırından sonra aktarmaya devam ediyor ve tabiki hücrelere ondan sonra sıfır değerleri koyuyor. Anladığım kadarıyla döngü devam ediyor.

Saygılar,
 
Merhaba Halit Bey,
Dediğiniz gibi yaptım yine olmadı. Bordroyu aktarıyor ancak bordronun son satırından sonra aktarmaya devam ediyor ve tabiki hücrelere ondan sonra sıfır değerleri koyuyor. Anladığım kadarıyla döngü devam ediyor.

Saygılar,

4 nolu mesajımdaki soruma cevap vermediniz.

6 nolu mesajdaki dosyada sizin dosyanız bu örnek dosyanızda uygulama çalışıyor.
 
Üstadım merhaba,

4 nolu mesajınıza şöyle cevap verdim.
HATA KODU: 983054 veriyor.

6 nolu mesajınızın gereğini de yaptım. 2 dosyayı masa üstünde aynı klasöre attım ve kodlar yazılan "kapalı dosyadan veri al.xls" dosyasını açıp veri al butonunu tıklayınca bordro bilgileri geliyor ama "bordro.xls" satırlar bitince durmuyor. Döngü devam ediyor.

Birde verileri dökerken hücre kenar çizgileri çizebilir mi acaba.

Emeğinize sağlık, çok teşekkür ederim.
 
Halit Bey
Tekrar Merhaba,
Program sizde çalıştığını gördüm zahmet etmeseydiniz. Sizi yeterince zahmet verdim zaten. Benim excel 2010'dur. Versiyon farkı olabilirmi bilmiyorum. Videonuzdakinin aynısını defalarca izledim ama yine aşağıya doğru sürekli yazmaya devam ediyor.

Halit bey kardeşim, sana gönderdiğim bordronun örneğinde görüleceği üzere tablonun 1. satırından 7. satırına kadar olan bilgilerinde gelmesini istiyorum. Ayrıca bordroda bütün kişiler döküldükten sonra kişi sayısını veren satırın da gelmesi gerekir.

Ellerinize sağlık, çok teşekkür ederim.
 
Halit Bey
Tekrar Merhaba,
Program sizde çalıştığını gördüm zahmet etmeseydiniz. Sizi yeterince zahmet verdim zaten. Benim excel 2010'dur. Versiyon farkı olabilirmi bilmiyorum. Videonuzdakinin aynısını defalarca izledim ama yine aşağıya doğru sürekli yazmaya devam ediyor.

Halit bey kardeşim, sana gönderdiğim bordronun örneğinde görüleceği üzere tablonun 1. satırından 7. satırına kadar olan bilgilerinde gelmesini istiyorum. Ayrıca bordroda bütün kişiler döküldükten sonra kişi sayısını veren satırın da gelmesi gerekir.

Ellerinize sağlık, çok teşekkür ederim.

kod:

Kod:
Sub kapalıverial()
Kaynak = Application.GetOpenFilename("All Files (*.*),*.*.")
If Kaynak = False Then
MsgBox "Veri alınacak dosyayı seçmediniz.", vbInformation, "DİKKAT"
Exit Sub
Else
End If
Rows("1:500").ClearContents
'veri1 = Cells(1, 1).Value
'veri2 = Cells(1, 2).Value
'veri3 = Cells(1, 3).Value
Dosya = Dir(Kaynak)
yer = Mid(Kaynak, 1, Len(Kaynak) - Len(Dir(Kaynak)))
tmp = Dir(Kaynak)
deg = "'" & yer & "[" & tmp & "]" & x & "'!R"
Cells(1, 1).Value = yer
Cells(1, 2).Value = tmp
Cells(1, 3).Value = "=" & deg & 1 & "C" & 1
Cells(1, 3).Replace What:="=", Replacement:=""
alan1 = Worksheets(ActiveSheet.Name).Cells(1, 3).Value
For k = 1 To Len(alan1)
If Mid(alan1, k, 1) = "]" Then
yer = (Len(alan1) - 6 - k)
zaman = Mid(alan1, k + 1, yer)
End If
Next
Cells(1, 3).Value = zaman
sayfaadi = zaman
Kalasor = Cells(1, 1).Value
Dosya = Cells(1, 2).Value
sayfaadi = Cells(1, 3).Value
deg = "'" & Kalasor & "[" & Dosya & "]" & sayfaadi & "'!R"
sat = Application.ExecuteExcel4Macro("COUNTA('" & Kalasor & "[" & Dosya & "]" & sayfaadi & "'!C8)")
satir = 10
sat1 = 1
For r = 1 To 8
k = 0
For i = 1 To 26
If r <> 8 Then
Cells(sat1, i).Value = ExecuteExcel4Macro(deg & r & "C" & i)
Else
If i <> 7 Then
k = k + 1
Cells(sat1, k).Value = ExecuteExcel4Macro(deg & r & "C" & i)
Else
End If
End If
If Cells(sat1, i).Value = 0 Then
Cells(sat1, i).Value = ""
End If
Next i
sat1 = sat1 + 1
Next r

For r = 1 To sat - 2
k = 0
For i = 1 To 26
If i <> 7 Then
k = k + 1
Cells(sat1, k).Value = ExecuteExcel4Macro(deg & satir & "C" & i)
If Cells(sat1, k).Value = 0 Then
Cells(sat1, k).Value = ""
End If
End If
Next i
sat1 = sat1 + 1
satir = satir + 3
Next r
'Cells(1, 1).Value = veri1
'Cells(1, 2).Value = veri2
'Cells(1, 3).Value = veri3
MsgBox "işlem tamam"
End Sub
 
Merhaba,
Çok teşekkürler. Halit bey. Bilgileri eksiksiz döküyor ancak son satır olan "Listelenen 11 Personel" satırını getirmiyor. Burda kalıyor. Sorun burda sanırım.
İşlem arka planda devam ediyor görünüyor. Programı kesmiyor ve satırlara önceki gibi artık sıfır atmıyor.

Saygılarımla,
 
Merhaba,
Çok teşekkürler. Halit bey. Bilgileri eksiksiz döküyor ancak son satır olan "Listelenen 11 Personel" satırını getirmiyor. Burda kalıyor. Sorun burda sanırım.
İşlem arka planda devam ediyor görünüyor. Programı kesmiyor ve satırlara önceki gibi artık sıfır atmıyor.

Saygılarımla,

Sizinle anlaşamıyacağız galiba 1 nolu mesajınızdaki örnek dosyaya göre kod çalışıyor örnek dosyanızda üç kişiye ait veri var onbir kişiye ait veri yok.

O zaman veri alamadığınız dosyayı ekleyin konu uzayıp yitmesin.
 
Merhaba,
Kodları birçok bordroda denedim sonuç aynı. Zaten bordroda kişi sayısı hep değişiyor 50, 100 gibi olabiliyor. Kodlarınız her bordroda çalışıyor. Son satırı yazıp bitirmiyor. Kodlarınızın sonunda mesaj "İşlem tamam" demiyor bekliyor.

Size EKTE 11 kişilik bir bordro daha ilave ettim. Burda da çalışıyor ancak son satır olan "Listelenen 11 Personel" veya kaç personelse onu yazmıyor ve orda bekliyor. İlk yazdığınız kod işlemi kesmiyordu devam ediyordu.
Excel versiyon nedeni olabilirmi acaba. Benim excel 2010.

Halit bey kardeşim her şey için teşekkür ederim.

Ahmet Üçüncü
 

Ekli dosyalar

Merhaba,
Kodları birçok bordroda denedim sonuç aynı. Zaten bordroda kişi sayısı hep değişiyor 50, 100 gibi olabiliyor. Kodlarınız her bordroda çalışıyor. Son satırı yazıp bitirmiyor. Kodlarınızın sonunda mesaj "İşlem tamam" demiyor bekliyor.

Size EKTE 11 kişilik bir bordro daha ilave ettim. Burda da çalışıyor ancak son satır olan "Listelenen 11 Personel" veya kaç personelse onu yazmıyor ve orda bekliyor. İlk yazdığınız kod işlemi kesmiyordu devam ediyordu.
Excel versiyon nedeni olabilirmi acaba. Benim excel 2010.

Halit bey kardeşim her şey için teşekkür ederim.

Ahmet Üçüncü

Ekli dosyadaki kodu denermisiniz Veriler gelirken ilk mesaj olarak ne geliyor onu belirtin.
 

Ekli dosyalar

Merhaba,
Bu defa; "Verileri al" dediğimde ekte görüleceği üzre 12. satır diye uyarı geliyor.
"Tamam" dediğimde ise sorunsuz veriler geliyor.

Ancak 12. satır dediği sanırım tarih format hatası gibi gözüküyor. Ekte gözüküyor.

Esen kalın.
 

Ekli dosyalar

Merhaba,
Bu defa; "Verileri al" dediğimde ekte görüleceği üzre 12. satır diye uyarı geliyor.
"Tamam" dediğimde ise sorunsuz veriler geliyor.

Ancak 12. satır dediği sanırım tarih format hatası gibi gözüküyor. Ekte gözüküyor.

Esen kalın.

12 satır mesajını ben kodun içine yazmıştım bunu dördüncü mesajımda sizden istedim yapmadınız.

12 satır demek veri alacağınız dosyada başlık satırından sonra 12 satır veri var demektir.

Son satırdaki bilgiler geliyor sadece liste adeti gelmiyor. Yani 11 kişilik dosyada son satırdaki bilgi 43. satırda siz herhalde 44. satırdaki
(Listelenen 11 Personel) bu bilgiyide istiyorsunuz. buna gerek varmı.
 

Ekli dosyalar

Merhaba Halit Bey,
Önce ellerinize sağlık ve çok teşekkür ederim.

1. Tarih formatları bazıları farklı geliyor. Düzeltilebilir mi?
2. 21 kişilik bordro yaptığımda A36'ya sıfır koyuyor.
3. Bordro dosyası (veri alınacak dosya) açık olsaydı hangi kodu ilave etmem gerekir.
4. "SSK Sicil No" sutünü almak istemezsem nerde değişiklik yapmam gerekir.

Üstadım teşekkür eder saygılar sunarım.
Bilgileriniz daim olsun.
 
Merhaba Halit Bey,
Önce ellerinize sağlık ve çok teşekkür ederim.

1. Tarih formatları bazıları farklı geliyor. Düzeltilebilir mi?
2. 21 kişilik bordro yaptığımda A36'ya sıfır koyuyor.
3. Bordro dosyası (veri alınacak dosya) açık olsaydı hangi kodu ilave etmem gerekir.
4. "SSK Sicil No" sutünü almak istemezsem nerde değişiklik yapmam gerekir.

Üstadım teşekkür eder saygılar sunarım.
Bilgileriniz daim olsun.

Merhabalar,
Bu konu ile ilgili başlık açtım ama bilgi alamadım. Forumu araştırdım ama çözemedim. Ekteki bordro dosyasından veri almak istiyorum ama sırayla veri almayacağım. Bazı gereksiz satır ve sutun var onları eleyip diğer bilgileri dosyadan çekmek istiyorum.

Herkese çok teşekkürler.

Kapalı dosyalardan veri alma işlemi baya zor ve zahmetli bir iş 1 nolu mesajınızdaki sorunuza cevap vermiştim oysa şimdi soru üstüne sorular doğuyor.


Excel seviyenizi bilmiyorum bir örnek vereceksek 10 adet excell ünitesi olsun kapalı dosyalardan veri almada 7. ünitete olsun eğer excell seviyeniz üç veya dördüncü ünitelerde ise bu yedinci ünitedeki kapalı dosyalardan veri alma bölümünü haliyle anlıyamıyacaksınız. Birazcık gayretle bu siteden veya çeşitli sitelerdeki buna benzer konuları araştırmanız hatta bu konu ile ilgili kitaplara bakmanız daha yararlı olacaktır.

Bu konuda başka mesaj yazmıyacağım.

Size iyi çalışmalar diliyorum.
 
Geri
Üst