Vba-excel

Résolu
cs_refaat Messages postés 30 Date d'inscription jeudi 5 juillet 2007 Statut Membre Dernière intervention 7 septembre 2008 - 7 août 2008 à 14:11
cs_refaat Messages postés 30 Date d'inscription jeudi 5 juillet 2007 Statut Membre Dernière intervention 7 septembre 2008 - 8 août 2008 à 18:07
Bonjour à tous,
je veux récupérer le nom d'une cellule! c simple je pense! j'ai cherché sur intenet, ils disent que je dois utiliser ".name.name" mais ça ne fonctionne pas. j cette erreur là : "Application-defined or object-defined
error" "runtime error 1004"!
j'ai déja ouvert un workbook.
voici mon code:

Dim str As String
 Dim cellule As Range
    For Each sheet In ActiveWorkbook.Sheets
        For Each cell In ActiveSheet.Cells
            str = cell.name.name
            MsgBox str
        Next cell
    Next sheet

qu'est ce que je dois faire?
ça fait longtemps que je suis bloqué.j tout essayé!
aidez-moi svp.c urgent.

5 réponses

bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
7 août 2008 à 21:42
Salut,

bon alors plusieur chose : str est un nom reservé VBA car str est une fonction donc remplace le  nom de cette variable par autre chose.
Sheet est lui aussi un nom reservé VBA excel, tu ne peux donc boucler sur les feuilles de cette maniere. la aussi change le nom
en suite cela ne marche pas et bien tu devrais t'en rejouire car une boucle qui renverait une message box pour chaque cellules des 3 feuilles de base d'excel, represente pour en sortir  :  65535*256*3 cellules soit 50 330 880
cliques
sur le bouton ok ... mais peut etre que tu es en vacance et que tu ne sais pas quoi faire ... si tu tiens une cadance de 2 cliques seconde 24/24 7j/7j tu devrais avoir finit dans 291 jours

en suite si un probleme aussi facile n'a pu etre resolu c'est peut etre que la question a été mal posée non !... car les cellules non pas de nom elles ont soit une adresse soit une reference. En generale on utilise l'adresse.

voici ton code en version corrigé :

en bleu ce qui a changé

Dim MyStr As String
 Dim cellule As Range, MaFeuille As Worksheet
    For Each MaFeuille In ActiveWorkbook.Worksheets
           For Each cellule In MaFeuille.Cells
               If cellule.Address = "$A$1" Then
                  MyStr = MaFeuille & " " & cellule.Address
                  MsgBox MyStr
              End If
        Next
    Next MaFeuille

tu noteras que finalement j'ai ete sympas car tu n'auras qu'un nombre de clique correspondant au nombre de feuille

Bon clique
3
bonjourcheval Messages postés 228 Date d'inscription mercredi 13 décembre 2000 Statut Membre Dernière intervention 8 août 2011
7 août 2008 à 14:32
Bon, ça ne règle pas ton problème, mais tu as une petite erreur je crois :

Dim str As String
 Dim cellule As Range
    For Each sheet In ActiveWorkbook.Sheets
        For Each cell In ActiveSheet.Cells

            str = cell.name.name
            MsgBox str
        Next cell
    Next sheet

Bon, SI tu veux seulement la ActiveSheet, alors pas besoin de boucle.

Sinon, remplace la ligne pour

For Each cell In sheet

Et puis tu as déclaré Dim cellule as Range et tu utilises cell

Tu as probablement oublié option explicit. C'est peut-être pour ça qu'il fait une erreur

Et juste une question comme ça... cell.name ça donne quoi??

Ah oui et j'oubliais

Vous êtes ici : [infomsg.aspx Thèmes] /[infomsgf_VISUAL-BASIC_1.aspx Visual Basic 6]
/ [infomsgt_DIVERS_220.aspx Divers] / [infomsgt_DEBUTANTS_226.aspx Débutants] / vba-excel


Tu as posté dans la mauvaise section! La prochaine fais post dans Langage Dérivé/VBA    quand tu as des questions à propos de VBA

Walla
0
cs_refaat Messages postés 30 Date d'inscription jeudi 5 juillet 2007 Statut Membre Dernière intervention 7 septembre 2008
7 août 2008 à 14:41
merci pour ta réponse
mais la : dim cellule as range n'y est pour rien.
cell.name ne donne rien non plus.
en fait comment je peux changer de section?
0
cs_refaat Messages postés 30 Date d'inscription jeudi 5 juillet 2007 Statut Membre Dernière intervention 7 septembre 2008
7 août 2008 à 16:20
c'est bizarre qu'un problème si facile (je pense), ne trouve pas de solution.
sachez que je suis un débutant!
merci de m'aiguiller.
0

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

Posez votre question
cs_refaat Messages postés 30 Date d'inscription jeudi 5 juillet 2007 Statut Membre Dernière intervention 7 septembre 2008
8 août 2008 à 18:07
merci pour tout [auteur/BIGFISHLEVRAI/510670.aspx bigfish_le vrai].
 c'est ça le code qui devrait etre écrit dès le début!
voilà! c simple.
un grand merci à [auteur/BIGFISHLEVRAI/510670.aspx bigfish_le vrai] une autre fois et à [auteur/BONJOURCHEVAL/1416430.aspx bonjourcheval]
0
Rejoignez-nous