fanjio
Messages postés7Date d'inscriptionmardi 10 mai 2005StatutMembreDernière intervention12 mai 2009
-
5 juil. 2005 à 15:41
ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 3 décembre 2007
-
6 juil. 2005 à 05:30
Bonjour a tous!
Alors voila j'ai un petit probleme.
J'ai un classeur excel avec plusieurs feuille renommée
j'ai crée des indicateur de type feu rouge sur les feuilles, via un code.
Seulement j'ai des feu rouge un peu partout sur plusieurs feuille
et maintenant je voudrais maintenant creer une nouvelle feuille récapitulative
avec une vision globale de tous ces indicateurs.
comment faire le meme feu rouge avec les meme valeurs et couleur que celui qui se trouve sur une autre feuille.
les valeurs de référence appartenant à une autre feuille comment puis je faire pour lire et appeler ce données sur la feuille récapitulative.
Espérant que j'ai réussi à me faire comprendre.
Merci d'avance à tous ceux qui pourront me répondre.
A voir également:
Vba récupérer valeur cellule d'une autre feuille
Excel appeler cellule autre feuille - Meilleures réponses
Appeler une cellule d'une autre feuille excel - Meilleures réponses
ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 3 décembre 200724 6 juil. 2005 à 05:30
En effet, de simples liaisons feront l'affaire!!! Et
pour ça, null besoins du VBA, une simple formule peut suffir à faire
ton bonheur!!!
Le mieux est de laisser Excel s'en charger pour toi... Donc, au lieu de
te donner la syntaxe je vais te donner le mode opératoire pour faire ce
genres de liaisons. Liaisons qui, je le rappele, fonctionne aussi entre
des feuilles de différents fichiers (et même si ces derniers sont
fermés!!! C'est pas merveilleux Excel franchement!!!). Donc, voici la
procédure à suivre :
Place-toi sur la feuille récapitulative dans la bonne cellule.
- Tape sur la touche "= ",
- puis, avec ta souris, clique sur la feuille source (celle contenant l'information à rapatrier),
- puis, une fois dans cette feuille, sélectionne, toujours avec ta
souris de préférence, la ou les cellules que tu veux utiliser.
- Après, contente-toi de valider en appuyant sur la touche "Enter" de ton clavier.
Maintenant, la cellule de ta feuille récape a pris la valeur de la
cellule "source". Tu as donc la formule qui doit ressembler, à peut de
chose près à ceci : =Feuil1!A1
Si tu as une somme a effectuer, tu peux, par exemple, mettre à la place de ceci :
=SOMME(A1:B2)
celà :
=SOMME(Feuil1!A1:B2)
Sinon, en VBA, comme l'as dit Lupus, il suffit de faire référence à la
cellule. Pour ce faire, déjà, tu dois préciser le classeur (fichier
ouvert) dont tu parles. Tu peux soit utiliser le classeur courant, soit
le classeur actif, soit le classeur intitulé machin :
Workbooks( index ) < = Index étant soit le numéro du
classeur selon l'ordre d'ouverture dans Excel (et donc, variable de
fois en fois!!!), soit le nom du fichier mis entre guillemets.
Le mieux, bien sûr étant d'utiliser "ThisWorkbook" !!!
Mais après il faut encore, un peu sur le même modèle, dire dans quelle feuille est notre cellule!!!
Worksheets(index) <= idem, soit le N° de la feuille [à partir de 1] soit son nom entre " nom "
Sheets(index) est identique au
précédent! Du moins, personnellement je n'ai jamais compris la
différence entre les deux (si quelqu'un la connait et peut
m'expliquer!?!?!?) !!!
ActiveSheet < = La feuille active (celle affichée)
Ensuite, il faut indiquer la cellule ou le groupe de cellule auquel tu
veux faire référence dans ton code. Pour ça il y a deux techniques
différentes :
Cells(X,Y) où X et Y sont des chiffres [Cells(1,1) = Cellule A1]
Cells ne te permet de ne selectionner qu'une seule cellule à la fois
contrairement à la technique suivante qui est cependant plus
contraignante!!!
Range("A1") Dans ce cas, il s'agit de texte... C'est d'ailleurs pour cela qu'il est mis entre guillements!
Donc, l'inconvénient de Range c'est lors de l'incrémentation
automatique de sa valeur... puisque c'est du texte, ça pose de sérieux
problèmes pour gérer facilement les colonnes!!!
En revanche on peut parfaitement gérer les lignes comme avec Cells() en faisant, par exemple, ceci :
Range("A" & CStr(numLigne)) CStr convertissant la variable
numérique "numLigne" en texte en autant les espaces (en fait, c'est
comme si tu mettais Trim(Str(nimLigne)) !!!).
Mais l'avantage de Range c'est de pouvoir faire référence à un groupe de cellules :
Range("A1:C3") !!!
Donc, pour faire référence à une cellule ou un groupe de cellule du peut écrire, par exemple, ceci :
ThiWorkbook.Woksheets("Feuil1").Cells(1,1)
ou encore
ThiWorkbook.Woksheets("Feuil1").Range("A1:C3")
Ensuite, l'objet Range a une propriété Value qui fait référence à la
valeur (par opposition à la formule) de la cellule. Donc, pour faire en
sorte qu'une cellule prenne la valeur d'une autre, il suffit de faire
comme ça :