Utiliser la valeur des cellules d'une plage pour désigner une feuille précise

pericles

XLDnaute Nouveau
Bonjour à tous,

je suis nouveau sur le forum alors j'espère être au bon endroit pour poser ma question. Bon alors voici : je suis en train de mettre en place un fichier excel pour effectuer des relevés de température dans des magasins d'archives (au total 36 magasins, répartis en 6 magasins par étage sur 6 étages et appelés par un numéro 11, 12, 13, 14, 15, 16, 21,22 etc) en attendant qu'un système plus évolué le fasse automatiquement. Je joins d'ailleurs un fichier excel pour explication. On a donc une première feuille "releve" qui permet comme un formulaire de redispatcher (par macro) les résultats dans les 36 onglets nommés 11, 12,13, etc (en fonction du code du magasin) (ces 36 onglets ont tous la même structure). une fois que les informations sont enregistrées dans les 36 feuilles, je veux qu'un bulletin d'alerte soit créé pour vérifier les variations de température, etc. et c'est donc dans ce "bulletin_alerte" que se pose mon problème : je voudrais que pour la plage B2:B37, je puisse faire un calcul qui récupère pour chaque ligne le code du magasin contenu dans la colonne A : par exemple en cellule B2 je veux vérifier que dans le magasin 11, la température soit la même entre celle mesurée par l'appareil et celle indiquée par le magasin, pour ça j'ai besoin que dans ma cellule B2 de l'onglet "bulletin_alerte" la formule VBA soit capable d'aller en cellule A2, de récupérer la valeur de la cellule (soit "11") et ainsi de pouvoir récupérer les valeurs contenues dans les cellules B2 et D2 de l'onglet "11"....

en terme de code ça donnerait ceci :

Sub Comparaison_variation_1()
'
' Comparaison_variation_1 Macro
' Macro enregistrée le 05/07/2011 par lepagej
'

'
With Sheets("BULLETIN_ALERTE")
Range("b2:z37").Interior.ColorIndex = 0
End With




var1 = Sheets("11").Range("b65536").End(xlUp).Value
var2 = Sheets("11").Range("d65536").End(xlUp).Value
T = var2 - var1
Sheets("BULLETIN_ALERTE").Range("b2").Value = T
If Sheets("BULLETIN_ALERTE").Range("b2").Value <> "0" Then
Sheets("BULLETIN_ALERTE").Range("b2").Select
Selection.Interior.ColorIndex = 3


End If
End Sub


sauf qu'à la place de
var1 = Sheets("11").Range("b65536").End(xlUp).Value
var2 = Sheets("11").Range("d65536").End(xlUp).Value
il faudrait que le "11" puisse être une variable reprise dans la colonne A de l'onglet "bulletin_alerte", j'ai essayé plein de trucs, mais là je ne sais plus. j'espère être clair, si besoin d redemandez-moi...

sinon je peux toujours le faire ligne par ligne mais ça risque d'^^etre long surtout que je vais le faire au moins pour 4 à 5 colonnes ensuite...

merci d'avance pour votre aide.
 
Dernière édition:

Softmama

XLDnaute Accro
Re : Utiliser la valeur des cellules d'une plage pour désigner une feuille précise

Bonjour,

tu peux ne faire qu'une seule macro pour toutes les lignes. Ceci en est un exemple :
VB:
Sub Comparaison_variation()
Dim c As Range, var1 As Double, var2 As Double
On Error GoTo E
With Sheets("BULLETIN_ALERTE")
.Range("b2:z37").Interior.ColorIndex = 0
Set c = [A2]
Do While c <> ""
var1 = Sheets(c.Text).Range("b65536").End(xlUp).Value
var2 = Sheets(c.Text).Range("d65536").End(xlUp).Value
T = var2 - var1
c(1, 2).Value = T
If .Range("b2").Value <> "0" Then .Range("b2").Interior.ColorIndex = 3
Set c = c(2, 1)
Loop
End With
Exit Sub
E: var1 = 0: var2 = 0: Resume Next
End Sub
 
Dernière modification par un modérateur:

pericles

XLDnaute Nouveau
Re : Utiliser la valeur des cellules d'une plage pour désigner une feuille précise

Merci beaucoup, le code fonctionne parfaitement. je peux mettre la question en résolue. J'avoue que jusque là, il m'est toujours un peu difficile de raisonner avec une boucle sauf sur des fonctions simples, mais on progresse. Merci beaucoup encore une fois pour votre réponse rapide et efficace. Bonne soirée
 

Discussions similaires

Réponses
2
Affichages
129

Statistiques des forums

Discussions
311 725
Messages
2 081 945
Membres
101 849
dernier inscrit
florentMIG