VBAexcel Plage avec dernière colonne inconnue
Fermé
The Flow
-
19 août 2009 à 17:25
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 20 août 2009 à 16:14
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 20 août 2009 à 16:14
A voir également:
- VBAexcel Plage avec dernière colonne inconnue
- Dernière version ccleaner gratuit français - Télécharger - Nettoyage
- Déplacer une colonne excel - Guide
- Formule somme excel colonne - Guide
- Colonne word - Guide
- Trier colonne excel - Guide
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))
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 306
19 août 2009 à 22:26
19 août 2009 à 22:26
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
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 306
20 août 2009 à 11:19
20 août 2009 à 11:19
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
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 306
20 août 2009 à 16:14
20 août 2009 à 16:14
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/