Comment sélectionner la dernière colonne d'une ligne de données?
eglantine217
Messages postés
64
Statut
Membre
-
eriiic Messages postés 24581 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24581 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Mon objectif serait d'automatiser un graphique excel, j'ai trouvé un super bon tutoriel qui explique cela, le problème est que ma plage de cellule varie tous les mois
exemple début de A1 à C2 mais le mois suivant sera de A1 à D2 et je ne sais pas comment dire en vba "sélectionne la dernière colonne remplit"
lorsque c'est une ligne qui varie j'ai la formule suivante
mais je n'ai pas de formule pour la colonne qui varie (en dessous j'ai posté un code issue d'un tutoriel que j'ai essayé d'adapter"
Mon objectif serait d'automatiser un graphique excel, j'ai trouvé un super bon tutoriel qui explique cela, le problème est que ma plage de cellule varie tous les mois
exemple début de A1 à C2 mais le mois suivant sera de A1 à D2 et je ne sais pas comment dire en vba "sélectionne la dernière colonne remplit"
lorsque c'est une ligne qui varie j'ai la formule suivante
ActiveSheet.Range("a1").End(xlDown).Select
mais je n'ai pas de formule pour la colonne qui varie (en dessous j'ai posté un code issue d'un tutoriel que j'ai essayé d'adapter"
Sub graphique()
Application.ScreenUpdating = False
ThisWorkbook.Sheets("CR").Range("B2:G6").Copy
'créer un nouveau classeur et y coller les données
Set nouv = Workbooks.Add
Set pg = nouv.Sheets(1)
pg.Paste
pg.Cells(1).PasteSpecial Paste:=xlValues
'tracer le graphique
Set gr = nouv.Charts.Add
With gr
.SetSourceData Source:=Sheets("Feuil1").Range("A1:F5"), PlotBy:=xlRows
.ChartType = xlLine
.Location Where:=xlLocationAsNewSheet
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "semaine"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "nombre"
.PlotArea.Interior.ColorIndex = 2
.Axes(xlValue).MajorGridlines.Border.LineStyle = xlDot
.ChartArea.Font.Size = 14
.Deselect
End With
Application.ScreenUpdating = True
'faire le ménage
Set pg = Nothing
Set gr = Nothing
Set nouv = Nothing
End Sub
2 réponses
-
Bonjour
plusieurs solutions
1. la dernière colonne (sous forme de nombre) remplie du classeurDerCol = Cells.Find("*", , , , xlByColumns, xlPrevious).Column
2. la dernière colonne (sous forme de nombre) remplie de la ligne 3derco = Cells(3, Columns.Count).End(xlToLeft).Column
3. colonnes sous forme de lettreDim a As String, derli as long , derco as string, premli as long, premco as string a = ActiveSheet.UsedRange.Address derli = Split(a, "$")(4) derco = Split(a, "$")(3) premli = Replace(Split(a, "$")(2), ":", "") premco = Split(a, "$")(1)
4. dernière colonne (sous forme de lettre ) de la ligne 3Dim derco As String, ad As String ad = Cells(3, Columns.Count).End(xlToLeft).Address derco = Split(ad, "$")(1)
Bon courage -
Bonsoir à tous,
Tu as essayé de faire ton graphique avec toutes les colonnes ?
Si les cellules sont vides normalement excel ne les prend pas en compte...
eric