Langage vba

larouche1985 Messages postés 7 Statut Membre -  
 larouche1985 -
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. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
  2. larouche1985 Messages postés 7 Statut Membre
     
    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. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Si ça ne suffit pas déposer un fichier, avec plus d'explication.
      eric
      0
  3. larouche1985 Messages postés 7 Statut Membre
     
    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. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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
  4. larouche1985 Messages postés 7 Statut Membre
     
    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. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. larouche1985 Messages postés 7 Statut Membre
     
    désolé j'été en déplacement,pas grave merci à toi comme même

    larouche
    0
  7. larouche1985
     
    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