VBAexcel Plage avec dernière colonne inconnue
The Flow
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous !
Lorsque je cherche à sélectionner un plage avec comme inconnue ma dernière ligne utilisée, j'utilise le code suivant.
Je souhaite maintenant sélectionner une plage avec comme inconnue ma dernière colonne remplie en vue d'actualiser la source d'un graphique. L'info doit se présenter sous la forme :
Voici ma modeste tentative :
Je serai ravis de bénéficier de votre aide :) Merci à tous ceux qui prendront la peine de m'aider !
Lorsque je cherche à sélectionner un plage avec comme inconnue ma dernière ligne utilisée, j'utilise le code suivant.
Dim LastRow As Long
With ActiveSheet
LastRow = .Cells(.Row.Count, "A").End(xlDown).Row
End With
Range("B29:D" & LastRow).Select
Je souhaite maintenant sélectionner une plage avec comme inconnue ma dernière colonne remplie en vue d'actualiser la source d'un graphique. L'info doit se présenter sous la forme :
ActiveChart.SetSourceData Source:=Sheets("blabla").Range(B29:X32)
Voici ma modeste tentative :
Dim LastColumnGraph As Long
With ActiveSheet
LastColumnGraph = .Cells(.Columns.Count, "B").End(xlToRight).Column
End With
Sheets("blabla").Select
ActiveSheet.ChartObjects("Graphique 5").Activate
ActiveChart.PlotArea.Select
ActiveChart.SetSourceData Source:=Range("B29:" & LastColumnGraph & "32"), _
PlotBy:=xlRows
ActiveWorkbook.Save
ActiveSheet.ChartObjects("Graphique 5").Activate
Je serai ravis de bénéficier de votre aide :) Merci à tous ceux qui prendront la peine de m'aider !
A voir également:
- VBAexcel Plage avec dernière colonne inconnue
- Dernière version ccleaner gratuit français - Télécharger - Nettoyage
- Déplacer colonne excel - Guide
- Supprimer dernière page word - Guide
- Trier colonne excel - Guide
- Dernière version chrome - Accueil - Applications & Logiciels
6 réponses
Bonsoir,
pour que ce code marche, choisis la ligne ou tu as toujours une donnée.
i= 1 'valeur de ta ligne
j=1 'valeur de ta colonne
cells(i,j).select
do while selection <> ""
j=j+1
cells(i,j).select
loop
'de même avec ta ligne
cells(i,j).select
do while selection <>""
i=i+1
cells(i,j).select
loop
ActiveChart.SetSourceData Source:=Sheets("blabla").Range(cells(1,1),cells(i,j))
pour que ce code marche, choisis la ligne ou tu as toujours une donnée.
i= 1 'valeur de ta ligne
j=1 'valeur de ta colonne
cells(i,j).select
do while selection <> ""
j=j+1
cells(i,j).select
loop
'de même avec ta ligne
cells(i,j).select
do while selection <>""
i=i+1
cells(i,j).select
loop
ActiveChart.SetSourceData Source:=Sheets("blabla").Range(cells(1,1),cells(i,j))
Bonsoir
Le point de départ de tes données semble être B29 ? si oui
Le point de départ de tes données semble être B29 ? si oui
Dim LastRow As Long, LastColumn As Long
With ActiveSheet
LastRow = .Range("B29").End(xlDown).Row
lastcolumn = .Range("B29").End(xlToRight).Column
End With
'....début de la partie graph
ActiveChart.SetSourceData Source:=Range(Cells(29, 2), Cells(LastRow, lastcolumn))
'...suite de ta partie graph
Merci de m'avoir répondu aussi rapidement.
J'ai testé vos deux propositions sans succès. Le déboggeur me renvoie une erreur 1004 à la ligne " ActiveChart.SetSourceData Source:=Sheets("Sources").Range(Cells(1, 1), Cells(i, j)), _
PlotBy:=xlRows".
Le message d'erreur indique : la méthode 'Cells' de l'objet'_Global' a échoué.
Voici mes codes :
J'ai testé vos deux propositions sans succès. Le déboggeur me renvoie une erreur 1004 à la ligne " ActiveChart.SetSourceData Source:=Sheets("Sources").Range(Cells(1, 1), Cells(i, j)), _
PlotBy:=xlRows".
Le message d'erreur indique : la méthode 'Cells' de l'objet'_Global' a échoué.
Voici mes codes :
Sheets("Sources").Select
i = 1 'valeur de ta ligne
j = 1 'valeur de ta colonne
Cells(i, j).Select
Do While Selection <> ""
j = j + 1
Cells(i, j).Select
Loop
'de même avec ta ligne
Cells(i, j).Select
Do While Selection <> ""
i = i + 1
Cells(i, j).Select
Loop
Sheets("CEL_HEBDO").Select
ActiveSheet.ChartObjects("Graphique 5").Activate
ActiveChart.PlotArea.Select
ActiveChart.SetSourceData Source:=Sheets("Sources").Range(Cells(1, 1), Cells(i, j)), _
PlotBy:=xlRows
ActiveWorkbook.Save
ActiveSheet.ChartObjects("Graphique 5").Activate
End Sub
Sub test()
Dim LastRow As Long, LastColumn As Long
Sheets("Sources").Select
Dim LastRowGraph As Long, LastColumnGraph As Long
With ActiveSheet
LastRowGraph = .Range("B29").End(xlDown).Row
LastColumnGraph = .Range("B29").End(xlToRight).Column
End With
Sheets("CEL_HEBDO").Select
ActiveSheet.ChartObjects("Graphique 5").Activate
ActiveChart.PlotArea.Select
ActiveChart.SetSourceData Source:=Sheets("Source").Range(Cells(29, 2), Cells(LastRowGraph, LastColumnGraph)), _
PlotBy:=xlRows
ActiveWorkbook.Save
ActiveSheet.ChartObjects("Graphique 5").Activate
End Sub
Bonjour
Dans la solution 2 tu as des orthographes différentes pour "source"...
Si seul, le nbre de col est variable, tu n'as pas besoin de macro...
il serait intéressant que tu mettes en PJ au format xls la feuille "source" sur cjoint.com
https://www.cjoint.com/
et tu colles le lien proposé dans ton message
Dans la solution 2 tu as des orthographes différentes pour "source"...
Si seul, le nbre de col est variable, tu n'as pas besoin de macro...
il serait intéressant que tu mettes en PJ au format xls la feuille "source" sur cjoint.com
https://www.cjoint.com/
et tu colles le lien proposé dans ton message
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Après avoir corrigé la faute, elle n'est pas à l'origine du problème.
Alors que lorsque je tape ce code, je parviens à sélectionner la zone de mon choix (attention les cellules ont changé) :
Lorsque j'essaie de l'intégrer dans mon code d'actualisation du tableau, cela génère une erreur :
Alors que lorsque je tape ce code, je parviens à sélectionner la zone de mon choix (attention les cellules ont changé) :
Sheets("Sources").Select
Range("A5", Range("A8").End(xlToRight)).Select
Lorsque j'essaie de l'intégrer dans mon code d'actualisation du tableau, cela génère une erreur :
Sheets("Sources").Select
Range("A5", Range("A8").End(xlToRight)).Select
Sheets("CEL_HEBDO").Select
ActiveSheet.ChartObjects("Graphique 5").Activate
ActiveChart.PlotArea.Select
ActiveChart.SetSourceData Source:=Sheets("Sources").Range("A5", Range("A8").End(xlToRight)), _
PlotBy:=xlRows
ActiveWorkbook.Save
ActiveSheet.ChartObjects("Graphique 5").Activate
je viens d'essayer cette ligne:
Range("A5", Range("A8").End(xlToRight)).Select
te sélectionne uniquement A5:A8...
Regarde la méthode SANS VBA sur ce site:
http://boisgontierjacques.free.fr/
Range("A5", Range("A8").End(xlToRight)).Select
te sélectionne uniquement A5:A8...
Regarde la méthode SANS VBA sur ce site:
http://boisgontierjacques.free.fr/