• DİKKAT

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

İki tarih aralığında PDF kaydetme

Katılım
16 Nisan 2008
Mesajlar
313
Excel Vers. ve Dili
Türkçe Microsoft Office Excel 2007
Merhaba Arkadaşlar,
Servis formumda Y4 hücresinde açılır liste halinde tek bir tarih kısmı var. Buradaki tarih değiştikçe Form içerisindeki bilgiler değişiyor. İstedğim tarihe göre de PDF formatında kayıt yapıyorum.
Fakat bazen 10 larca tarihe ait servis formu kaydetmem gerekiyor.
Örnekte verdiğim dosyada AH4 ile AJ4 tarihleri arasındaki olan tarihleri nasıl yazdırabilirim.
Bir başka deyişle ikinci yol şöyle de olabilir. Y4 hücresi, AH4-AJ4 aralığına göre sırayla nasıl değişebilir? Yani Y4 ü ben elle değiştirmeden aralığa göre kendi değişecek.
Saygılarımla
 

Ekli dosyalar

Son düzenleme:
Merhaba
Pdf kaydetme makrosunu bununla değiştirip dener misiniz?
Kod:
Sub PDF_Kaydet_Servis()
Dim STR As Long
Sheets("ServisFORMU").Select
dosya_adı = Cells(1, "a").Value
If dosya_adı = "C:\deneme\" Then
MsgBox "Dosya adı yok"
Exit Sub
End If
'a = MsgBox("hkjhjkhkj", vbYesNo + vbInformation, " Uyarı")
'If a = vbYes Then
For STR = Range("AH4") To Range("AJ4")
Range("Y4") = STR
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ThisWorkbook.Path & "\" & dosya_adı, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
'MsgBox "kjhkjhkjhkj sonnnn "
'End If
'If a = vbNo Then
'MsgBox "İşlemi İptal Ettiniz.!"
'End If
Next
End Sub
 
Hocam denedim. Tek bir form kaydediyor. Yani 24.10.2016- 15.11.2016 arasını seçtim. 6 adet pdf kaydetmesi gerekirken, sadece "SERVIS_RAPORU_2016.11.15.pdf" formatı verdi.
 
Hocam denedim. Tek bir form kaydediyor. Yani 24.10.2016- 15.11.2016 arasını seçtim. 6 adet pdf kaydetmesi gerekirken, sadece "SERVIS_RAPORU_2016.11.15.pdf" formatı verdi.

Sizce öyle olması gerekmiyor mu?
Dosya adını siz kendiniz belirlemiştiniz.
Kod:
Sub PDF_Kaydet_Servis()
Dim STR As Long
Sheets("ServisFORMU").Select
If dosya_adı = "C:\deneme\" Then
MsgBox "Dosya adı yok"
Exit Sub
End If
'a = MsgBox("hkjhjkhkj", vbYesNo + vbInformation, " Uyarı")
'If a = vbYes Then
For STR = Range("AH4") To Range("AJ4")
Range("Y4") = STR
dosya_adı = Cells(1, "a").Value
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ThisWorkbook.Path & "\" & dosya_adı, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
'MsgBox "kjhkjhkjhkj sonnnn "
'End If
'If a = vbNo Then
'MsgBox "İşlemi İptal Ettiniz.!"
'End If
Next
End Sub
Bu kod ile istediğinizi yapabilirsiniz
 
Asi Kral hocam emeğinize teşekkür ederim. Sizin koda Askm hocamın If Range("e4") <> "" Then eklentisiyle istediğim oldu.
Tek sorun tarihleri gün gün taraması zaman kaybına neden oluyor. Sadece olan tarihleri alsa süper olurdu. Ama buna da şükür. Hepinize teşekkür ederim.
 
Asi Kral hocam emeğinize teşekkür ederim. Sizin koda Askm hocamın If Range("e4") <> "" Then eklentisiyle istediğim oldu.
Tek sorun tarihleri gün gün taraması zaman kaybına neden oluyor. Sadece olan tarihleri alsa süper olurdu. Ama buna da şükür. Hepinize teşekkür ederim.

O zaman kodu bununla değiştirip deneyin.
Kod:
Sub PDF_Kaydet_Servis()
Dim STR As Long
Sheets("ServisFORMU").Select
If dosya_adı = "C:\deneme\" Then
MsgBox "Dosya adı yok"
Exit Sub
End If
'a = MsgBox("hkjhjkhkj", vbYesNo + vbInformation, " Uyarı")
'If a = vbYes Then
For STR = Range("AH4") To Range("AJ4")
If WorksheetFunction.CountIf(Sheets("Dataservis").Range("C:C"), STR) > 0 Then
Range("Y4") = STR
dosya_adı = Cells(1, "a").Value
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ThisWorkbook.Path & "\" & dosya_adı & "-" & Format(Range("Y4"), "dd.mm.yyyy"), Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
'MsgBox "kjhkjhkjhkj sonnnn "
'End If
'If a = vbNo Then
'MsgBox "İşlemi İptal Ettiniz.!"
'End If
End If: Next
End Sub
 
O zaman kodu bununla değiştirip deneyin.
Kod:
Sub PDF_Kaydet_Servis()
Dim STR As Long
Sheets("ServisFORMU").Select
If dosya_adı = "C:\deneme\" Then
MsgBox "Dosya adı yok"
Exit Sub
End If
'a = MsgBox("hkjhjkhkj", vbYesNo + vbInformation, " Uyarı")
'If a = vbYes Then
For STR = Range("AH4") To Range("AJ4")
If WorksheetFunction.CountIf(Sheets("Dataservis").Range("C:C"), STR) > 0 Then
Range("Y4") = STR
dosya_adı = Cells(1, "a").Value
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ThisWorkbook.Path & "\" & dosya_adı & "-" & Format(Range("Y4"), "dd.mm.yyyy"), Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
'MsgBox "kjhkjhkjhkj sonnnn "
'End If
'If a = vbNo Then
'MsgBox "İşlemi İptal Ettiniz.!"
'End If
End If: Next
End Sub
Hocam ellerine ve emeğine sağlık. 1 bucuk aylık aralığı denedim. Önceki kod 28sn de, son gönderdiğin 11sn de tamamladı. Çok teşekkür ederim.
 
Geri
Üst