Langage vba

bonjour,
j'utilise que récemment les macro sur excel et je voudrais crée un programme qui me fais deviser mon tableau en plusieurs petit tableaux de taille variable, dans une meme feuille pour ensuite tracer des graphe avec.
Sub Macro5()
'
' Macro5 Macro
'
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlXYScatter
ActiveChart.SetSourceData Source:=Range("<souligne>Feuil1!$G$8:$H$72</souligne>")

End Sub

dans la macro ci dessus le problème est dans la dernière ligne puisque ça varié avec la taille du tableau
merci d'avance pour votre aide

6 réponses

  1. Contributeur
    Bonjour,

    essaie avec
    :=Range("Feuil1!$G$8:$H$" & cells(rows.count,"G"))
    Si ça ne suffit pas déposer un fichier, avec plus d'explication.

    eric

    0
    1. merci pour votre réponse mais ça ne marche pas, j'ai un tableau de 9000 ligne*4 colonne que je veux découper en 12 tableaux dans la meme feuille puis tracer les courbes de chaque
      mon problème c'est que les dimensions de tout mes tableaux varie
      donc j'ai essayer de tracer un graphe pour un tableau variable:

      Range(Selection, Selection.End(xlDown)).Select
      ActiveSheet.Shapes.AddChart.Select
      ActiveChart.ChartType = xlXYScatter
      ActiveChart.SetSourceData Source:=Range("Feuil1!$F$12:$G$" & Cells(Rows.Count, "G"))

      ma question est ce que c'est possible de mettre un truc comme
      :=Range("Feuil1!$F$12:$G$" & End(xlDown))
      de tel façon a parcourir toute la colonne??

      merci
      0
      1. Contributeur
        Si ça ne suffit pas déposer un fichier, avec plus d'explication.
        eric
        0
    2. voici ma macro:

      Range("A2:E246").Select
      Selection.Copy
      Range("H2").Select
      Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False

      Range("A247:E494").Select
      Selection.Copy
      Range("M2").Select
      Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False

      Range("A495:E742").Select
      Selection.Copy
      Range("S2").Select
      Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False

      Range("A743:E990").Select
      Selection.Copy
      Range("Y2").Select
      Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False

      Range("A991:E1238").Select
      Selection.Copy
      Range("AE2").Select
      Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False

      Range("A1239:E1486").Select
      Selection.Copy
      Range("AK2").Select
      Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False

      Range("A1487:E1734").Select
      Selection.Copy
      Range("AQ2").Select
      Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False

      Range("A1735:E1982").Select
      Selection.Copy
      Range("AW2").Select
      Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False

      Range("A1983:E2230").Select
      Selection.Copy
      Range("BC2").Select
      Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False

      Range("A2231:E2478").Select
      Selection.Copy
      Range("BI2").Select
      Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False

      Range("A2479:E2726").Select
      Selection.Copy
      Range("BO2").Select
      Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False

      Range("A2727:E2974").Select
      Selection.Copy
      Range("BU2").Select
      Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False

      Range("A2975:E3222").Select
      Selection.Copy
      Range("CA2").Select
      Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False

      Range("A3223:E3470").Select
      Selection.Copy
      Range("CG2").Select
      Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False

      Range("A3471:E3718").Select
      Selection.Copy
      Range("CM2").Select
      Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False

      Range("A3719:E3966").Select
      Selection.Copy
      Range("CS2").Select
      Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False

      Range("A3967:E4213").Select
      Selection.Copy
      Range("CY2").Select
      Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False

      Range("A4214:E4462").Select
      Selection.Copy
      Range("DE2").Select
      Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False

      Range("A4463:E4711").Select
      Selection.Copy
      Range("DK2").Select
      Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False

      Range("A4712:E4962").Select
      Selection.Copy
      Range("DQ2").Select
      Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False
      Range("I2:K14").Select
      Range(Selection, Selection.End(xlDown)).Select
      ActiveSheet.Shapes.AddChart.Select
      ActiveChart.ChartType = xlXYScatter
      ActiveChart.SetSourceData Source:=Range("Feuil1!$L$2:$K$246")
      ActiveChart.SeriesCollection(1).Name = "=Feuil1!$K$2:$K$246"
      ActiveChart.SeriesCollection(1).Values = "=Feuil1!$L$2:$L$246"
      ActiveChart.SeriesCollection(1).Name = "="
      ActiveChart.SeriesCollection(1).XValues = "=Feuil1!$K$2:$K$246"
      ActiveChart.SeriesCollection.NewSeries
      ActiveChart.SeriesCollection(2).XValues = "=Feuil1!$P$2:$P$9"
      ActiveChart.SeriesCollection(2).Values = "=Feuil1!$Q$2:$Q$8"
      ActiveChart.SeriesCollection(2).Values = "=Feuil1!$Q$2:$Q$249"
      ActiveChart.SeriesCollection(2).XValues = "=Feuil1!$P$2:$P$249"

      ActiveWindow.LargeScroll Down:=6
      ActiveWindow.SmallScroll Down:=-78
      ActiveChart.ApplyLayout (1)
      ActiveChart.ChartTitle.Select
      ActiveChart.ChartTitle.Text = "-2C1"
      Selection.Format.TextFrame2.TextRange.Characters.Text = "-2C1"
      With Selection.Format.TextFrame2.TextRange.Characters(1, 10).ParagraphFormat
      .TextDirection = msoTextDirectionLeftToRight
      .Alignment = msoAlignCenter
      End With
      With Selection.Format.TextFrame2.TextRange.Characters(1, 10).Font
      .BaselineOffset = 0
      .Bold = msoTrue
      .NameComplexScript = "+mn-cs"
      .NameFarEast = "+mn-ea"
      .Fill.Visible = msoTrue
      .Fill.ForeColor.RGB = RGB(0, 0, 0)
      .Fill.Transparency = 0
      .Fill.Solid
      .Size = 18
      .Italic = msoFalse
      .Kerning = 12
      .Name = "+mn-lt"
      .UnderlineStyle = msoNoUnderline
      .Strike = msoNoStrike
      End With
      ActiveChart.Axes(xlCategory).AxisTitle.Select
      ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Text = "D"
      Selection.Format.TextFrame2.TextRange.Font.Size = 26
      Selection.Format.TextFrame2.TextRange.Characters.Text = "D"
      With Selection.Format.TextFrame2.TextRange.Characters(1, 5).ParagraphFormat
      .TextDirection = msoTextDirectionLeftToRight
      .Alignment = msoAlignCenter
      End With
      With Selection.Format.TextFrame2.TextRange.Characters(1, 5).Font
      .BaselineOffset = 0
      .Bold = msoTrue
      .NameComplexScript = "+mn-cs"
      .NameFarEast = "+mn-ea"
      .Fill.Visible = msoTrue
      .Fill.ForeColor.RGB = RGB(0, 0, 0)
      .Fill.Transparency = 0
      .Fill.Solid
      .Size = 10
      .Italic = msoFalse
      .Kerning = 12
      .Name = "+mn-lt"
      .UnderlineStyle = msoNoUnderline
      .Strike = msoNoStrike
      End With
      ActiveChart.Axes(xlValue).AxisTitle.Select
      ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Text = "brut"
      Selection.Format.TextFrame2.TextRange.Characters.Text = "brut"
      With Selection.Format.TextFrame2.TextRange.Characters(1, 6).ParagraphFormat
      .TextDirection = msoTextDirectionLeftToRight
      .Alignment = msoAlignCenter
      End With
      With Selection.Format.TextFrame2.TextRange.Characters(1, 6).Font
      .BaselineOffset = 0
      .Bold = msoTrue
      .NameComplexScript = "+mn-cs"
      .NameFarEast = "+mn-ea"
      .Fill.Visible = msoTrue
      .Fill.ForeColor.RGB = RGB(0, 0, 0)
      .Fill.Transparency = 0
      .Fill.Solid
      .Size = 10
      .Italic = msoFalse
      .Kerning = 12
      .Name = "+mn-lt"
      .UnderlineStyle = msoNoUnderline
      .Strike = msoNoStrike
      End With
      ActiveChart.SeriesCollection(2).Select
      With Selection
      .MarkerStyle = 1
      .MarkerSize = 7
      End With
      Selection.MarkerSize = 6
      Selection.MarkerSize = 5
      Selection.MarkerSize = 4
      ActiveChart.SeriesCollection(1).Select
      ActiveChart.SeriesCollection(1).Points(61).Select
      ActiveChart.SeriesCollection(1).Points(81).Select
      ActiveChart.SeriesCollection(1).Points(113).Select
      ActiveChart.SeriesCollection(1).Points(80).Select
      ActiveChart.SeriesCollection(1).Points(49).Select
      ActiveChart.SeriesCollection(1).Points(18).Select
      ActiveChart.ChartArea.Select
      ActiveChart.ChartArea.Select
      ActiveChart.SeriesCollection(1).Select
      With Selection
      .MarkerStyle = 2
      .MarkerSize = 7
      End With
      Selection.MarkerSize = 6
      Selection.MarkerSize = 5
      Selection.MarkerSize = 4
      ActiveChart.Legend.Select

      ActiveChart.SeriesCollection(1).Name = "=""A1"""
      ActiveChart.SeriesCollection(2).Name = "=""R1"""

      ActiveChart.SeriesCollection(2).Select
      ActiveChart.SeriesCollection.NewSeries
      ActiveChart.SeriesCollection(3).XValues = "=Feuil1!$V$2:$V$249"
      ActiveChart.SeriesCollection(3).Values = "=Feuil1!$W$2:$W$249"

      ActiveChart.ChartArea.Select
      ActiveChart.SeriesCollection.NewSeries
      ActiveChart.SeriesCollection(4).XValues = "=Feuil1!$AB$2:$AB$249"
      ActiveChart.SeriesCollection(4).Values = "=Feuil1!$AC$2:$AC$249"

      ActiveChart.SeriesCollection(3).Name = "=""A2"""
      ActiveChart.SeriesCollection(4).Name = "=""R2"""

      ActiveChart.PlotArea.Select
      ActiveChart.ChartArea.Select
      ActiveChart.SeriesCollection.NewSeries
      ActiveChart.SeriesCollection(5).XValues = "=Feuil1!$AH$2:$AH$249"
      ActiveChart.SeriesCollection(5).Values = "=Feuil1!$AI$2:$AI$249"
      ActiveChart.SeriesCollection(5).Select

      ActiveChart.SeriesCollection.NewSeries
      ActiveChart.SeriesCollection(6).XValues = "=Feuil1!$AN$2:$AN$249"
      ActiveChart.SeriesCollection(6).Values = "=Feuil1!$AO$2:$AO$249"

      ActiveChart.SeriesCollection(5).Name = "=""A3"""
      ActiveChart.SeriesCollection(6).Name = "=""R3"""

      ActiveChart.SeriesCollection.NewSeries
      ActiveChart.SeriesCollection(7).XValues = "=Feuil1!$AT$2:$AT$249"
      ActiveChart.SeriesCollection(7).Values = "=Feuil1!$AU$2:$AU$249"

      ActiveChart.SeriesCollection.NewSeries
      ActiveChart.SeriesCollection(8).XValues = "=Feuil1!$AZ$2:$AZ$249"
      ActiveChart.SeriesCollection(8).Values = "=Feuil1!$BA$2:$BA$249"

      ActiveChart.SeriesCollection(7).Name = "=""A4"""
      ActiveChart.SeriesCollection(8).Name = "=""R4"""

      ActiveChart.SeriesCollection.NewSeries
      ActiveChart.SeriesCollection(9).XValues = "=Feuil1!$BF$2:$BF$249"
      ActiveChart.SeriesCollection(9).Values = "=Feuil1!$BG$2:$BG$249"

      ActiveChart.SeriesCollection.NewSeries
      ActiveChart.SeriesCollection(10).XValues = "=Feuil1!$BL$2:$BL$249"
      ActiveChart.SeriesCollection(10).Values = "=Feuil1!$BM$2:$BM$249"

      ActiveChart.SeriesCollection(9).Name = "=""A5"""
      ActiveChart.SeriesCollection(10).Name = "=""R5"""

      ActiveChart.SeriesCollection.NewSeries
      ActiveChart.SeriesCollection(11).XValues = "=Feuil1!$BR$2:$BR$249"
      ActiveChart.SeriesCollection(11).Values = "=Feuil1!$BS$2:$BS$249"

      ActiveChart.SeriesCollection.NewSeries
      ActiveChart.SeriesCollection(12).XValues = "=Feuil1!$BX$2:$BX$249"
      ActiveChart.SeriesCollection(12).Values = "=Feuil1!$BY$2:$BY$249"

      ActiveChart.SeriesCollection(11).Name = "=""A6"""
      ActiveChart.SeriesCollection(12).Name = "=""R6"""

      ActiveChart.SeriesCollection.NewSeries
      ActiveChart.SeriesCollection(13).XValues = "=Feuil1!$CD$2:$CD$249"
      ActiveChart.SeriesCollection(13).Values = "=Feuil1!$CE$2:$CE$249"

      ActiveChart.SeriesCollection.NewSeries
      ActiveChart.SeriesCollection(14).XValues = "=Feuil1!$CJ$2:$CJ$249"
      ActiveChart.SeriesCollection(14).Values = "=Feuil1!$CK$2:$CK$249"

      ActiveChart.SeriesCollection(13).Name = "=""A7"""
      ActiveChart.SeriesCollection(14).Name = "=""R7"""

      ActiveChart.SeriesCollection.NewSeries
      ActiveChart.SeriesCollection(15).XValues = "=Feuil1!$CP$2:$CP$249"
      ActiveChart.SeriesCollection(15).Values = "=Feuil1!$CQ$2:$CQ$249"

      ActiveChart.SeriesCollection.NewSeries
      ActiveChart.SeriesCollection(16).XValues = "=Feuil1!$CV$2:$CV$249"
      ActiveChart.SeriesCollection(16).Values = "=Feuil1!$CW$2:$CW$249"

      ActiveChart.SeriesCollection(15).Name = "=""A8"""
      ActiveChart.SeriesCollection(16).Name = "=""R8"""

      ActiveChart.SeriesCollection.NewSeries
      ActiveChart.SeriesCollection(17).XValues = "=Feuil1!$DB$2:$DB$249"
      ActiveChart.SeriesCollection(17).Values = "=Feuil1!$DC$2:$DC$249"

      ActiveChart.SeriesCollection.NewSeries
      ActiveChart.SeriesCollection(18).XValues = "=Feuil1!$DH$2:$DH$249"
      ActiveChart.SeriesCollection(18).Values = "=Feuil1!$DI$2:$DI$249"

      ActiveChart.SeriesCollection(17).Name = "=""A9"""
      ActiveChart.SeriesCollection(18).Name = "=""R9"""

      ActiveChart.SeriesCollection.NewSeries
      ActiveChart.SeriesCollection(19).XValues = "=Feuil1!$DN$2:$DN$249"
      ActiveChart.SeriesCollection(19).Values = "=Feuil1!$DO$2:$DO$249"

      ActiveChart.SeriesCollection.NewSeries
      ActiveChart.SeriesCollection(20).XValues = "=Feuil1!$DT$2:$DT$249"
      ActiveChart.SeriesCollection(20).Values = "=Feuil1!$DU$2:$DU$249"

      ActiveChart.SeriesCollection(19).Name = "=""A10"""
      ActiveChart.SeriesCollection(20).Name = "=""R10"""

      ci qui me dérange c'est que les dimensions ce sont pas variables moi je veux qu'il me sélectionne toute les case non vide pour le graphe
      merci
      0
      1. Contributeur
        Dernière tentaive...
        Déposer le fichier xls (réduit au nécessaire et anonymisé, avec les explications et éventuellement le résultat attendu) sur cjoint.com et coller ici le lien fourni.
        mon problème c'est que les dimensions de tout mes tableaux varie
        Il faut détailler. Est-ce qu'elles sont seulement différentes. Ou bien est-ce qu'elles varient dans le temps, en fonction de quoi, etc

        eric
        0
    3. Bonjour,
      voici le lien: https://www.cjoint.com/?0IyjTC09jk5
      ce que je veux faire c'est diviser mon grand tableau en petit tableau en fonction du signe de F2
      il aura 20 au total mais le début et la fin de variation du signe varie toujours!!!
      merci
      0
      1. Contributeur
        Bonjour,

        Merci mais moi j'abandonne.
        il faut se bagarrer pour avoir les infos.
        Aucun suivi, tu n'es pas sérieux du tout.
        C'est toi qui a besoin d'aide, moi ça va...

        eric
        0
    4. désolé j'été en déplacement,pas grave merci à toi comme même

      larouche
      0
      1. Bonjour le forum,
        j'ai un programme qui marche bien mais toujours le problème de sélection qui me dérange, si quelqu'un peux me donner un coup de main

        Range("K198").Select
        ActiveCell.FormulaR1C1 = "=AVERAGE(R[-144]C[-2]:R[1]C[-2])"

        Range("K400").Select
        ActiveCell.FormulaR1C1 = "=AVERAGE(R[-109]C[-2]:R[38]C[-2])"

        Range("K681").Select
        ActiveCell.FormulaR1C1 = "=AVERAGE(R[-144]C[-2]:R[1]C[-2])"

        Range("K884").Select
        ActiveCell.FormulaR1C1 = "=AVERAGE(R[-109]C[-2]:R[38]C[-2])"

        dans le calcule des moyennes je veux qu'il me les calcule en fonction de ce qu'il a dans la cellule a en face
        merci
        0