• 26-04-2024, 22:14:08
    #1
    Merhaba
    11597 Satırlık verim mevcut. Her 11 satırdan 1 Grafik Çıkıyor. Bu grafikleri oluşturup masaüstüme pdf olarak kayıt etmeyi planlayarak büyük iş yükünden kurtulmayı düşündüm ama uygulamaya dökerken hata alıyorum. Hata aldığım kodu aşağı ekliyorum.


    ActiveSheet.Shapes("Grafik 3").IncrementLft 89.1176377953
    ActiveSheet.Shapes("Grafik 3").IncrementTop -210.8823622047
    ActiveSheet.Shapes("Grafik 3").ScaleWidth 2.7279413823, msoFalse, _
    msoScaleFromTopLeft
    ActiveSheet.Shapes("Grafik 3").ScaleHeight 1.9971405658, msoFalse, _
    msoScaleFromTopLeft"

    Bu kısım beni bitiren kısım. Grafiği oluşturduktan sonra grafiğe boyut vermek istedim çünkü değerler iç içe giriyordu grafikte. Burada bulunan Grafik 3 kısmı her grafik yazdırmadan sonra değişmesi gerekiyor sanırım artık grafiğin değeri neyse sanırım o olması gerekiyor bu grafik 3 olayını çözemedim. Grafik 4, grafik 5, vs. diye gitmesi gerekiyor sanırım

    Grafik 3 satırındaBelirtilen adlı öge bulunamadı diye sürekli hata yiyorum. Problemi anlatabildim mi bilmiyorum ama aşağıya tüm kodları ekledim Grafik 3 yazan yere nasıl bir değişken tanımlayabilirim veya nasıl başka bir alternatif üretebilirim, Teşekkürler

    Sub Makro1()
    '
    For i = 2 To 11587 Step 11
    For p = 12 To 11597 Step 11
    
    '
        Range("" & "D" & i & ":" & "I" & p).Select
        ActiveSheet.Shapes.AddChart2(227, xlLine).Select
        ActiveSheet.Shapes("Grafik 3").IncrementLft 89.1176377953
        ActiveSheet.Shapes("Grafik 3").IncrementTop -210.8823622047
        ActiveSheet.Shapes("Grafik 3").ScaleWidth 2.7279413823, msoFalse, _
            msoScaleFromTopLeft
        ActiveSheet.Shapes("Grafik 3").ScaleHeight 1.9971405658, msoFalse, _
            msoScaleFromTopLeft
        ActiveChart.SetElement (msoElementDataLabelTop)
        ActiveChart.SetElement (msoElementDataTableWithLegendKeys)
        ActiveChart.ChartTitle.Select
        Selection.Caption = "='veritabanı'!B & i"
        ActiveChart.ChartArea.Select
        ChDir "C:\Users\narhome\Desktop\deneme"
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
            "C:\Users\narhome\Desktop\deneme\" & Sheets("veritabanı").Range("B" & i) & ".pdf", Quality:= _
            xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
            OpenAfterPublish:=False
        ActiveChart.Parent.Delete
    Next
    Next
    
     
    End Sub
  • 26-04-2024, 23:11:48
    #2
    Selamlar hocam aşağıda ki macroyu dener misiniz

    Sub Makro1()
    Dim chartName As String
    Dim chartNumber As Integer
    chartNumber = 1 ' Başlangıç için grafik numarasını 1 olarak ayarlayın
    
    For i = 2 To 11587 Step 11
        For p = 12 To 11597 Step 11
            Range("D" & i & ":I" & p).Select
            chartName = "Grafik" & chartNumber ' Her döngü için benzersiz grafik ismi
            ActiveSheet.Shapes.AddChart2(227, xlLine).Select
            ActiveChart.Parent.Name = chartName ' Grafik ismini ayarla
            
            With ActiveSheet.Shapes(chartName)
                .IncrementLeft 89.1176377953
                .IncrementTop -210.8823622047
                .ScaleWidth 2.7279413823, msoFalse, msoScaleFromTopLeft
                .ScaleHeight 1.9971405658, msoFalse, msoScaleFromTopLeft
            End With
            
            With ActiveChart
                .SetElement (msoElementDataLabelTop)
                .SetElement (msoElementDataTableWithLegendKeys)
                .ChartTitle.Select
                Selection.Caption = "='veritabanı'!B" & i
                .ChartArea.Select
            End With
            
            ChDir "C:\Users\narhome\Desktop\deneme"
            ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
                "C:\Users\narhome\Desktop\deneme\" & Sheets("veritabanı").Range("B" & i) & ".pdf", Quality:= _
                xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
                OpenAfterPublish:=False
            ActiveChart.Parent.Delete
            chartNumber = chartNumber + 1 ' Grafik numarasını artır
        Next p
    Next i
    
    End Sub
  • 27-04-2024, 02:59:36
    #3
    ibrhmatysn adlı üyeden alıntı: mesajı görüntüle
    Selamlar hocam aşağıda ki macroyu dener misiniz
    Eline emeğine sağlık temiz çalıştı hocam çok teşekkür ederim
  • 27-04-2024, 03:00:29
    #4
    medyamio adlı üyeden alıntı: mesajı görüntüle
    Eline emeğine sağlık temiz çalıştı hocam çok teşekkür ederim
    Selamlar rica ederim hocam çözülmesine sevindim