Pb Macro

Bonjour à tous,

Il y a t il moyen via une macro de récupérer des données d'une autre feuille que celle où la macro est active ?

Par avance merci de votre aide.

Bon dimanche à tous !

Philippe

Bonjour,

Oui il y a moyen...

Lorsqu'une macro "se joue" si dans son code il y a inscrit : Range("A1").Value alors la référence de la cellule correspond à la feuille active au moment où la macro est lancée (par exemple feuille1)

Si vous voulez récupérer la valeur de la cellule A1 d'une feuille particulière alors il faut dans le code le stipuler : Sheets("Feuil5").Range("A1").Value

Ici quelque soit la feuille active du classeur c'est bien la valeur de la cellule A1 de la feuille Feuil5 qui sera récupérée.

@ bientôt

LouReeD

Merci beaucoup pour ce précieux conseil !

Bon dimanche !

Bonjour à tous

J'ajouterai qu'un bon code référence et le classeur et la feuille et non juste des plages : il est donc important de prendre cette bonne habitude...

Et oui car en l'absence de "l'objet parent" VBA prendra toujours l'objet parent actif, donc si la référence cible un autre classeur que celui actif, il faut aussi spécifier le nom de ce classeur.

C'est le principe même des codes basés sur les "objets" :

On choisi la maison, puis la pièce, puis le meuble, puis le tiroir, puis la pochette, puis la feuille, puis la ligne pour enfin trouver le 5ième mot de la phrase...

Si on ne se trouve pas dans la bonne maison, soit ça plante car pas de résultat correspondant soit cela renvoie une mauvaise donnée...

@ bientôt

LouReeD

Merci 78chris et LouReeD pour vos réponses mais pouvez vous développer un peu ?

car dans la formule "Sheets("Feuil5").Range("A1").Value" j'aimerai faire une boucle sur la cellule. est ce possible ?

merci par avance de vos réponses.

Excusez moi, la demande n'était pas si explicite que cela...

Pour faire ce que vous demandez il "suffit" de passer la référence de la cellule en "variable" afin de la faire varier avec la boucle, le plus simple pour cela est de passer par l'instruction Cells plutôt que Range :

For I=1 to 10
  Sheets("Feuil5").Cells(I, 1).value = "LouReeD"
Next I

Ici le code inscrira LouReeD dans les cellules allant de la ligne 1 à 10 de la première colonne de la "Feuil5".

Maintenant pour plus de précisions il vous faut (certainement) déposer votre fichier sur le forum ou bien un fichier équivalent avec la situation de départ ainsi que celle voulue à l'arrivée.

@ bientôt

LouReeD

C'est juste parfait !

Merci infiniment de votre aide !

Bonne soirée

Philippe

Bonsoir,

on se connaît ? Comment connaissez-vous mon deuxième prénom ?

Je plaisante ! Merci @ vous pour vos remerciements !

@ bientôt

LouReeD

Rechercher des sujets similaires à "macro"