rapor oluşturma

Katılım
21 Ocak 2013
Mesajlar
422
Excel Vers. ve Dili
2010
userformda excel'e raporla komutu ile GELENEVRAK excel sayfasındaki tüm verileri yeni bir excel dosyası olarak raporlayabilirmiyim?
 
Katılım
21 Ocak 2013
Mesajlar
422
Excel Vers. ve Dili
2010
gelenevrak sayfasındaki a hücresi ile h hücresi arasında kayıtlı olan verileri seçip yeni bir excel sayfasına kayıt yapmasını istiyorum.
yardımlarınızı bekliyorum.
 

kakara

Altın Üye
Katılım
5 Mart 2014
Mesajlar
252
Excel Vers. ve Dili
excel 2016 plus
Altın Üyelik Bitiş Tarihi
19-12-2025
buyuk bır ıhtımalle ustadlar sızden örnek bır çalışma dosyası beklıyor
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Sayın kakara'nın da belirttiği gibi örnek dosyasız taleplerin çözümü sıkıntılı oluyor. Hazırlanan makronun sizin dosyanıza ne kadar uyacağını bilmiyoruz çünkü.

Aşağıdaki makroyu deneyin:

PHP:
Sub sayfakaydet()

Sayfa_Adı = ActiveSheet.Name

Klasor = ActiveWorkbook.Path & Application.PathSeparator

With Application
    .ScreenUpdating = False
    .EnableEvents = False
End With

Dim ds, a
Set ds = CreateObject("Scripting.FileSystemObject")
Dim sayfa As Worksheet
For Each sayfa In Worksheets
    If sayfa.Name = Sayfa_Adı Then
        For i = Len(ThisWorkbook.Name) To 1 Step -1
            If Mid(ThisWorkbook.Name, i, 1) = "." Then
                Dosya_adi = Mid(ThisWorkbook.Name, 1, i - 1)
                Exit For
            End If
        Next
        For Each Dosya In CreateObject("Scripting.FileSystemObject").GetFolder(Klasor).Files
            If Mid(Dosya.Name, 1, Len(Dosya_adi)) = Dosya_adi Then
                sat = sat + 1
                a = ds.FileExists(Klasor & Dosya_adi & sat) ' & Uzanti)
                If a = True Then
                Else
                    son = 1
                    Exit For
                End If
            End If
        Next
        If son = 0 Then
            sat = sat + 1
        End If
        sayfa.Copy
        deger = Dosya_adi & sat & Uzanti
        ActiveSheet.DrawingObjects.Delete
        For Each component In ActiveWorkbook.VBProject.VBComponents
            If component.Type <> 100 Then
                ActiveWorkbook.VBProject.VBComponents.Remove component
            Else
                Set modul = component.CodeModule
                modul.DeleteLines 1, modul.CountOfLines
            End If
        Next
        Dim wb As Workbook
        Set wb = ActiveWorkbook
        Application.DisplayAlerts = False
            With wb
                .SaveAs Klasor & deger
                .Close SaveChanges:=False
            End With
        Application.DisplayAlerts = True

        With Application
            .ScreenUpdating = True
            .EnableEvents = True
        End With
    End If
Next
End Sub
 
Katılım
21 Ocak 2013
Mesajlar
422
Excel Vers. ve Dili
2010
örnek dosyası yükledim userform üzerinden gelenevrak kısmında excele raporla dediğim zaman gelenevrak excel sayfasındaki veriyi yeni bir excel dosyası olarak raporlamasını ve masaüstüne kaydetmesini istiyorum ancak başaramadım.
şimdiden teşekkür ederim.

 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Yukarda verdiğim kodları sizin dosyanıza uyarlamaya çalıştım. Aşağıdaki kodları Excele raporla düğmesine ekleyin:

Kod:
Dim oWSHShell As Object

Set oWSHShell = CreateObject("WScript.Shell")
Klasor = oWSHShell.SpecialFolders("Desktop") & Application.PathSeparator
Set oWSHShell = Nothing

With Application
    .ScreenUpdating = False
    .EnableEvents = False
End With

Dim ds, a
Set ds = CreateObject("Scripting.FileSystemObject")
Dim sayfa As Worksheet
For Each sayfa In Worksheets
    If sayfa.Name = "GELENEVRAK" Then
        For i = Len(ThisWorkbook.Name) To 1 Step -1
            If Mid(ThisWorkbook.Name, i, 1) = "." Then
                Dosya_adi = Mid(ThisWorkbook.Name, 1, i - 1)
                Exit For
            End If
        Next
        For Each Dosya In CreateObject("Scripting.FileSystemObject").GetFolder(Klasor).Files
            If Mid(Dosya.Name, 1, Len(Dosya_adi)) = Dosya_adi Then
                sat = sat + 1
                a = ds.FileExists(Klasor & Dosya_adi & sat) ' & Uzanti)
                If a = True Then
                Else
                    son = 1
                    Exit For
                End If
            End If
        Next
        If son = 0 Then
            sat = sat + 1
        End If
        sayfa.Copy
        deger = Dosya_adi & sat & Uzanti
        ActiveSheet.DrawingObjects.Delete
        For Each component In ActiveWorkbook.VBProject.VBComponents
            If component.Type <> 100 Then
                ActiveWorkbook.VBProject.VBComponents.Remove component
            Else
                Set modul = component.CodeModule
                modul.DeleteLines 1, modul.CountOfLines
            End If
        Next
        Dim wb As Workbook
        Set wb = ActiveWorkbook
        Application.DisplayAlerts = False
            With wb
                .SaveAs Klasor & deger
                .Close SaveChanges:=False
            End With
        Application.DisplayAlerts = True

        With Application
            .ScreenUpdating = True
            .EnableEvents = True
        End With
    End If
Next
 
Katılım
21 Ocak 2013
Mesajlar
422
Excel Vers. ve Dili
2010
peki bir şey sorucam her raporla dediğim zaman dosya adını
gelenevrak rapor1
gelenevrak rapor2
gelenevrak rapor3 gibi ilerletebilirmiyim.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
O şekilde yapamadım ama dosya adının sonuna tarih ve saat ekledim. İsterseniz aşağıdaki gibi kullanabilirsiniz:

PHP:
Private Sub cmdexcelrapor_Click()
Dim oWSHShell As Object

Set oWSHShell = CreateObject("WScript.Shell")
Klasor = oWSHShell.SpecialFolders("Desktop")
Set oWSHShell = Nothing

With Application
    .ScreenUpdating = False
    .EnableEvents = False
End With

Dim ds, a
Set ds = CreateObject("Scripting.FileSystemObject")
Dim sayfa As Worksheet
For Each sayfa In Worksheets
    If sayfa.Name = "GELENEVRAK" Then
        For i = Len(ThisWorkbook.Name) To 1 Step -1
            If Mid(ThisWorkbook.Name, i, 1) = "." Then
                Dosya_adi = Mid(ThisWorkbook.Name, 1, i - 1)
                Exit For
            End If
        Next
        sayfa.Copy
        deger = Dosya_adi & " " & Format(Now, "yyyymmdddd hhmmss") & Uzanti
        ActiveSheet.DrawingObjects.Delete
        For Each component In ActiveWorkbook.VBProject.VBComponents
            If component.Type <> 100 Then
                ActiveWorkbook.VBProject.VBComponents.Remove component
            Else
                Set modul = component.CodeModule
                modul.DeleteLines 1, modul.CountOfLines
            End If
        Next
        Dim wb As Workbook
        Set wb = ActiveWorkbook
        Application.DisplayAlerts = False
            With wb
                .SaveAs Klasor & Application.PathSeparator & deger
                .Close SaveChanges:=False
            End With
        Application.DisplayAlerts = True

        With Application
            .ScreenUpdating = True
            .EnableEvents = True
        End With
    End If
Next
End Sub
 
Katılım
21 Ocak 2013
Mesajlar
422
Excel Vers. ve Dili
2010
hata sebebi sayfayı gizlediğim zaman oluşuyor sayfa gizli olmadığı zaman sıkıntı yok
 
Katılım
21 Ocak 2013
Mesajlar
422
Excel Vers. ve Dili
2010
bir şey soracağım peki bu sayfayı tekrar pdf formatına dönüştürebilirmiyim
 
Katılım
21 Ocak 2013
Mesajlar
422
Excel Vers. ve Dili
2010
hayır şimdi excel rapor aldık ya bunu pdf yapılabilir mi? userform üzerinden
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Userforma bir düğme daha ekleyin ve o düğmeye aşağıdaki kodları ekleyin. Öncesinde GELENEVRAK sayfasının yazdırma ayarını yapmanız gerekir. Şu anda bir sayfaya sığdırmıyor çünkü:

PHP:
Dim oWSHShell As Object

Set oWSHShell = CreateObject("WScript.Shell")
Klasor = oWSHShell.SpecialFolders("Desktop")
Set oWSHShell = Nothing
Sheets("GELENEVRAK").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        Klasor & "\GELEN EVRAK KAYIT " & Format(Now, "yyyymmdddd hhmmss") & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        False
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Allah rızası için bize müneccimmişiz gibi davranmayın. Ben kodu deneyerek gönderdim, herhangi bir hata vermedi. Ne hata verdiğini nerden bilebilirim?
 
Üst