VBA Range("A1") pas dans la bonne feuille

Résolu
jjsteing Messages postés 1613 Date d'inscription   Statut Contributeur Dernière intervention   -  
jjsteing Messages postés 1613 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Dans un fichier XL (sous office 2000) , Feuil1, A1, texte=A1 ; Feuil2, A1, texte=A2

Un ptit bouton dans Feuil1, code vba :

For Each NomsSheets In Worksheets
NomsSheets.Activate
NomsSheets.Select
MsgBox Range("A1").Value
'ou Cells(1,1).Value
next

me donne "A1" puis "A1" ... à croire que malgré le nomssheets.activate et nomssheets.select (qui fonctionne, vu qu il m affiche bien la feuille "Feuil2" dans mon XL), celle ci n est pas active pour vba....

alors que
MsgBox ActiveSheet.Range("A1").Value

me donne bien "A1" et "A2" ....

Grrrrr

Là c est un ptit exemple avec 1 seule ligne range... mais j'en ai des lignes et des lignes !!!.. Je voudrais pas ajouter 'ActiveSheet.' à chaque 'Range' ou 'Cells' de mon code ; ni un '.Range' ou '.Cells' qui marche avec le with....

En gros ma question : pourquoi un range("A1") se rapporte toujours à la feuille 1 malgré que ce soit une autre feuille active, et si possible, comment y remédier (que range("A1") se réfère à la feuille active)

Merci



N'hésitez pas à poser des questions, il vaut mieux être con 5 min que le rester toute sa vie ;)
N'oubliez pas de mettre votre Post en 'Résolu' quand c'est le cas :-D

1 réponse

  1. cousinhub29 Messages postés 1114 Date d'inscription   Statut Membre Dernière intervention   381
     
    Bonjour,

    Je répondrai en 2 temps...

    - Le code que tu fournis est sur le code de la feuille 1...et non dans un module standard...
    Donc, lorsque tu demandes la valeur de la cellule A1, il est tout à fait normal que le code te retourne la valeur de la cellule A1, de la feuille 1...

    - Il est rarement nécessaire d'utiliser les Select, et autres Activate...
    On peut très bien s'en passer, cela diminue énormément le temps d'exécution de ton code.

    Peut-être tout le code à revoir...

    Bon courage
    1
    1. jjsteing Messages postés 1613 Date d'inscription   Statut Contributeur Dernière intervention   181
       
      Super !!!

      J avais plus penser au module...

      En mettant tout mon code dans un module, tout marche impeccablement !!

      MERCI !!!
      0