Langage vba

Fermé
larouche1985 Messages postés 7 Date d'inscription mercredi 17 septembre 2014 Statut Membre Dernière intervention 21 novembre 2014 - 17 sept. 2014 à 22:41
 larouche1985 - 29 oct. 2014 à 17:25
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
A voir également:

6 réponses

eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 247
18 sept. 2014 à 00:29
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
larouche1985 Messages postés 7 Date d'inscription mercredi 17 septembre 2014 Statut Membre Dernière intervention 21 novembre 2014
Modifié par larouche1985 le 18/09/2014 à 09:55
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
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 247
18 sept. 2014 à 10:01
Si ça ne suffit pas déposer un fichier, avec plus d'explication.
eric
0
larouche1985 Messages postés 7 Date d'inscription mercredi 17 septembre 2014 Statut Membre Dernière intervention 21 novembre 2014
18 sept. 2014 à 10:34
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
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 247
18 sept. 2014 à 10:51
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
larouche1985 Messages postés 7 Date d'inscription mercredi 17 septembre 2014 Statut Membre Dernière intervention 21 novembre 2014
24 sept. 2014 à 09:47
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
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 247
24 sept. 2014 à 10:12
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
larouche1985 Messages postés 7 Date d'inscription mercredi 17 septembre 2014 Statut Membre Dernière intervention 21 novembre 2014
24 sept. 2014 à 17:02
désolé j'été en déplacement,pas grave merci à toi comme même

larouche
0
larouche1985
29 oct. 2014 à 17:25
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