Excel Forum
ALTIN ÜYELİK Hakkında Bilgi


Geri Git   Excel Forum > EXCEL-Soruları > Makro-VBA
Atatürk
Şifremi Unuttum

DUYURU SİSTEMİ / REKLAM PANOSU

Makro-VBA Makro veya VBA ile ilgili sorularınızı buraya gönderebilirsiniz.
Dosya ekleyebilirsiniz

Özel Arama


Yanıtla
 
Paylaş Konu Araçları Görünüm Modları
Eski 09-02-2018, 21:04   #1
1903emre34@gmail.com
Altın Üye
 
Giriş: 29/05/2016
Şehir: İstanbul
Mesaj: 531
Excel Vers. ve Dili:
Microsoft Excel 2013 Türkçe
Varsayılan Kodlarda revize

Merhaba,

Aşağıdaki kod ile Ocak-Eylül/2017 dosyalarda yer alan tarihleri ve tutarları ana sayfa aktarmaktadır, ama Ekim-Aralık/2017 dosyalarda verileri aktarmamaktadır.

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Private Sub CommandButton1_Click()
With Range("A2:C" & Rows.Count)
.ClearContents
.NumberFormat = "m/d/yyyy"
End With
Columns("B:B").NumberFormat = "#,##0.00"
Columns("C:C").NumberFormat = "0"
Range("G12:J23").ClearContents
Application.Calculation = xlCalculationManual
Set ds = CreateObject("Scripting.FileSystemObject")
Set f = ds.GetFolder(ThisWorkbook.Path)
Set dc = f.Files
For Each dosya In dc
If dosya.Name <> ThisWorkbook.Name And InStr(1, dosya.Name, "~", vbTextCompare) = 0 Then
If ds.GetExtensionName(dosya.Name) Like "xls*" Then
ad = UCase(Replace(Replace(ds.GetBaseName(dosya.Name), "i", "İ"), "ı", "I"))
q = Array("OC", "ŞU", "MAR", "NİS", "MAY", "HAZ", "TEM", "AĞ", "EY", "EK", "KAS", "ARA")
For p = 0 To UBound(q)
If InStr(1, ad, q(p), vbTextCompare) > 0 Then s = Format(p + 1, "00"): Exit For
Next
Set Aç = New Excel.Application
Aç.Workbooks.Open dosya
Set hz = Aç.Workbooks(Dir(dosya))
If hz.Sheets.Count < 3 Then
MsgBox dosya.Name & " dosyasında 3. sayfa bulunamadı"
GoTo 10
End If
Set ss = hz.Sheets(3)
ss.Activate
Set v = ss.Range("E:F").Find("Belge trh", , , xlPart, xlNext, xlNext, False)
If Not v Is Nothing Then
rw = ss.Cells(Rows.Count, v.Column).End(3).Row
rv = Cells(Rows.Count, "A").End(3).Row + 1
ss.Range(ss.Cells(v.Row, v.Column), ss.Cells(rw, v.Column)).NumberFormat = "m/d/yyyy"
Cells(rv, 1).Select
Range(Cells(rv, 1), Cells(rv + rw, 1)).Value = _
ss.Range(ss.Cells(v.Row, v.Column), ss.Cells(rw, v.Column)).Value

Range(Cells(rv, 2), Cells(rv + rw, 2)).Value = _
ss.Range(ss.Cells(v.Row, v.Column + 2), ss.Cells(rw, v.Column + 2)).Value

Range(Cells(rv, 3), Cells(rv + rw, 3)).Value = _
ss.Range(ss.Cells(v.Row, v.Column + 1), ss.Cells(rw, v.Column + 1)).Value

rv2 = Cells(Rows.Count, 1).End(xlUp).Row
 For j = rv2 To rv Step -1
 If IsDate(Cells(j, 1).Value) = True Then
 gün = Format(Replace(Cells(j, 1).Text, " ", ""), "dd")
 yıl = Format(Replace(Cells(j, 1).Text, " ", ""), "yyyy")
bak = CDate(WorksheetFunction.EoMonth(CDate("01 " & s & " " & yıl), 0))
bak = Format(bak, "dd")
If gün > bak Then gün = bak
 Cells(j, 1) = CDate(Format(gün & " " & s & " " & yıl, "dd.mm.yyyy"))
 Else
     Range("A" & j & ":C" & j).Delete Shift:=xlUp
 rv2 = rv2 - 1
 End If
 Next
Range("A" & rv & ":C" & rv2).Sort Key1:=Cells(rv, 1), Order1:=xlAscending
End If
10:
hz.Close SaveChanges:=False
Aç.Quit

End If: End If
Set Aç = Nothing
Next
Application.Calculation = xlCalculationAutomatic
[F10].Select
rv2 = Cells(Rows.Count, "A").End(3).Row
Range("A2:C" & rv2).Sort Key1:=Cells(2, 1), Order1:=xlAscending
Range("G12:H23").Formula = _
        "=IF(R11C=" & [G10].Text & ",IF(RC9<-1*RC10,-1*RC10-RC9,""""),IF(R11C=" & [H10].Text & ",IF(RC9>-1*RC10,IF(RC9>-1*RC10,RC9-(-1*RC10),-1*RC10-RC9),"""")))"
Range("I12:J23").Formula = _
        "=SUMPRODUCT((MONTH(INDIRECT(""A2:A""&sonsat))=ROW(R[-11]C[-8]))*(INDIRECT(""C2:C""&sonsat)=R11C[-2])*(INDIRECT(""B2:B""&sonsat)))"

End Sub
__________________
Mevzu_u Bahis Vatansa Gerisi Teferruattır
1903emre34@gmail.com Çevrimdışı   Alıntı Yaparak Cevapla
Eski 10-02-2018, 00:02   #2
YUSUF44
Destek Ekibi
 
YUSUF44 kullanıcısının avatarı
 
Giriş: 04/01/2006
Şehir: Manisa, Kula
Mesaj: 6,691
Excel Vers. ve Dili:
İş : Ofis 2016 - Türkçe Ev: Ofis 2016 - Türkçe
Varsayılan

Tam inceleyemedim ancak tek basamaklı ayları aktarıp iki basamaklıları aktarmadığı anlaşılıyor. Bu da tarih biçiminin "d/m/yyyy" olmasından kaynaklanıyor muhtemelen. "dd/mm/yyyy" yaparsanız düzelebilir.
__________________


Sorularınızı örnek dosyayla desteklemeniz çözüme ulaşmanızı kolaylaştırır.

Altın Üye olmanızı öneririm. Altın Üye değilseniz dosyanızı dosya yükleme sitelerinden birine yükleyip linkini paylaşabilirsiniz.
YUSUF44 Çevrimdışı   Alıntı Yaparak Cevapla
Yanıtla


Konu Araçları
Görünüm Modları

Gönderme Kuralları
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
SimgelerAçık
[IMG] kodu Açık
HTML kodu Kapalı


Saat 11:40


Bu forum Elit NET - www.elitnet.com.tr tarafından sunulmaktadır.

Excel Eğitimi - Mobil Uygulama - Çorlu - Çorlu Web Tasarım -- Beylikdüzü mali müşavir - Beylikdüzü mali müşavir - Lingerie - Dyeing Machine - Karton Bardak- Karton Bardak- Çorlu Dil Konuşma Terapisti- Çorlu Dil Konuşma Terapisti- Çorlu Konuşma Terapisti- Çorlu Konuşma Terapisti- Çorlu Özel Eğitim- Site Yönetimi- Pronet Tekirdağ- Çorlu Kamera- Pronet Edirne- Pronet Çorlu- Çorlu Araç Takip- Çorlu Su Arıtma- Gebze Emlak- Rampa- Rotary- Çorlu İnternet Sitesi- Çorlu Sürücü Kursu- Çorlu Sürücü Kursu- Şişli Avukat- Edirne Serbest Muhasebeci- Çorlu Etüt- İstanbul Botanik- Çorlu Sigorta- Kağıt Bardak- Kağıt Bardak- Kaplan Tekstil- Çorlu Perde- Çorlu Perde- Çorlu Havuz- Çorlu Havuz- Makina- Danışmazlar- Çorlu Perde Yıkama- Çorlu Perde Yıkama- Okul Danışmanlık- Çorlu Ayakkabı- İzmit Sigorta-
Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Advertisement System V2.6 By   Branden