Nommer cellule boucle EXCEL VBA

Résolu/Fermé
cassy - 4 nov. 2011 à 11:10
 cassy - 4 nov. 2011 à 13:51
Bonjour à tous,

Je suis débutante en programmation vba et j'aurais besoin d'un coup de main.

J'ai dans mon classeur une ligne avec des noms : en A1, nom1, en A2, nom 2, etc.

Je souhaiterais dans une boucle récupérer ces noms pour m'en servir notamment de titre de graphique.

J'ai donc écrit (je ne mets qu'un petit bout du code) :

Sub montest()
cpt = 0
nb_metaux = 6
Do
Set nom_metal = Cells(1, 1 + cpt)
MsgBox nom_metal 'pour vérifier
'etc : suite du code pour mon graph

cpt = cpt + 1
loop while cpt < nb_metaux + 1
End Sub

Ca marche très bien pour le premier graphique, mais pas pour les suivants quand je boucle.
J'ai même rajouté de quoi effacer le nom à la fin de la boucle mais ça ne fonctionne toujours pas... :(
Si quelqu'un à le moindre commentaire je suis preneuse...

Merci d'avance.


1 réponse

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
4 nov. 2011 à 13:38
bonjour

au lieu de
Cells(1, 1 + cpt)
écris
Cells(cpt+1,1)
avec cells la syntaxe est : cells(ligne, colonne)


comme tu dis que tu collecte le titre de tes graphiques, tu n'as pas besoin du "set"
nom_metal étant alors du type "string"
nom_metal=cells(cpt+1,1)
0
Bonjour,

En fait je me suis trompée en écrivant mon post, mes titres sont en A1, B1, C1, etc. Donc c'est bien Cells(1,1 + cpt).

J'ai fini par trouver mon erreur au bout de deux heures de recherches supplémentaires. En fait je restais sur la page de mon graphique à la fin de la boucle. Il a suffit de rajouter un Worksheets("ma_feuille").Activate au début du programme et de ma boucle.

Et comme tu me l'as dit, ça marche très bien sans le set (j'avais essayé auparavant mais j'avais une erreur qui s'affichait et qui était surement due au non rechargement de ma feuille de calcul et pas du set).

Merci beaucoup d'avoir pris le temps de me répondre.
Bonne journée
0