Choix d'une Feuille en fonction d'une valeur dans cellule
Bonjour à vous,
Je suis nouveau dans le monde des macros et je n'arrive pas à trouver de réponses compréhensibles à mon problème :
Grosso modo :
Je reçois un PV de sondes de températures que j'envoies pour étalonnage. Je souhaites rentrer ces données dans la feuille Insérer (ici 2 sondes mais c'est un lot de 15 en général par PV, sachant que j'ai 8 PVs car 8 types de sondes différentes).
J'aimerai en cliquant sur un bouton que ces données soient enregistrées dans chaque "suivi de sonde" que j'ai créé.
Commençons par mon premier blocage, je reviendrais vous voir par la suite si besoin
Je n'arrive pas déjà à choisir la feuille (qui en l'occurrence est le type de Tc/Sonde ex : TUS 90300 / TUS 90500) en fonction de la colonne C6 de la feuille Insérer.
J'ai essayer le code suivant mais ça ne marche pas :
Sub test1()
'
' test1 Macro
'
Dim Typtc As String
Typtc = Cells(3, 6)
Sheets(Typtc).Select
End Sub
Il bugg sur Sheets(Typtc).Select
Voilà, si vous avez une réponse, je rappelle compréhensible, je suis preneur !
Merci à ceux qui prendront le temps de me répondre ....
Bonsoir et bienvenu(e)
Inverse le 3 et le 6
Il faut Cells(6, 3) : Ligne 6 colonne 3 (C)
Sub test1()
'
' test1 Macro
'
Dim Typtc As String
Typtc = Cells(6, 3)
Sheets(Typtc).Select
End SubBonjour Tosh31 et Banzaï,
J'ai défusionné toutes les cellules que j'ai pu (interdiction formelle de fusionner des cellules compris!?
Sub test1()
Dim i%, quoi As Long, trouve As Range
i = 10
While Feuil3.Range("b" & i) <> ""
quoi = Feuil3.Range("b" & i)
With Sheets(Feuil3.Range("c6").Value).Range("a16:az16")
Set trouve = .Find(quoi, lookat:=xlWhole)
If Not trouve Is Nothing Then
Feuil3.Range("C" & i & ":q" & i).Copy trouve.End(xlDown).Offset(1, 0)
End If
End With
i = i + 1
Wend
End SubC'est la macro qui vous permet de copier vos informations dans les bonnes cases (ctrl + q pour la lancer).
Je reste ouvert si vous avez des questions...mais grosso modo, la macro cherche dans la feuille spécifiée en C6 le numéro du thermo couple (ça me rappel des souvenirs ça) en colonne b puis une fois qu'elle a trouvé le numéro de la sonde, elle se décale dans la première ligne vide et colle les informations...
Bonjour Banzaï et Force rouge ( j'aime bien, ça me rappelle de bons souvenirs ... )
Banzaï, pour info, j'avais un doute sur ma tournure donc j'avais mis l'autre typtc dans l'autre case et ça ne marchais pas quand même...
Force rouge (c'est tripant d'écrire cela) comment dirège, MERCI
Bon je viens de passer 2h à essayer de comprendre ( ça peut me servir pour plus tard) et j'en ai déduis :
Sub test1()
' définition des variantes : i comme Nombre entier, quoi comme Nombre entier énorme, trouve comme plage de cellule
Dim i%, quoi As Long, trouve As Range
' définition de constante i=10
i = 10
' Définition de la boucle : Tant que la colonne b de la feuille 3 et de ligne 10 n'est pas vide
While Feuil3.Range("b" & i) <> ""
' quoi = à la valeur trouvée ci dessus (valeur du TC)
quoi = Feuil3.Range("b" & i)
' avec feuille (nommée par la valeur de la case C6 et les cases de a16 à az16
With Sheets(Feuil3.Range("c6").Value).Range("a16:az16")
' défini la varible trouve : recherche variable quoi, la valeur de la variable quoi exactement
Set trouve = .Find(quoi, lookat:=xlWhole)
'S'il trouve la variable (quoi) dans la variable "trouve"
If Not trouve Is Nothing Then
'Alors copie la plage Cvariable i à Qvariable i dans la plage de la variable trouve ( à la dernière case pleine +1 (donc première vide))
Feuil3.Range("C" & i & ":q" & i).Copy trouve.End(xlDown).Offset(1, 0)
'Fin de la condition si
End If
'Fin de la condition avec
End With
'Incrémente la variable i de 1 ( donc repart pour une boucle i+1 )
i = i + 1
'Fin de la boucle (si condition du début de la boucle n'est pas trouvé (plus de TC dans colonne B)
Wend
End SubPeux-tu me confirmer si grosso modo j'ai raison, enfin pas tord déjà ?, car je vais maintenant l'appliquer à mon fichier ou il y a beaucoup plus de feuilles et de Thermocouples (j'espère que c'est de bons souvenirs pour toi ! )
Question subsidiaire car t'as l'air dit tater grave
Est t'il possible de créer un bouton "mise à jour" qui me changerai mes fonctions recherche ( car je ne pense pas qu'on puisse définir une variable XXXX dans la fonction ; =rechercheV(A1;'C:\Chemin répertoire\[XXXX.xslm]Base'!$A$5:$D$20;2;faux) Sachant que XXXX est une valeur de cellule
Désolé, j'ai pas le fichier sous la main.
Merci encore pour votre aide, vous m'avez déjà bien dépanné
Des souvenirs oui...Un four de brasage rétrofité à l'arrache avec 3TC de contrôle (bien entendu 3TC donc 3 offset...) un eutectique à atteindre de façon homogène avec deux grosses zones froides dans le four et une seule résistance de chauffe. Un an de déprime...
Pour ton analyse de la macro c'est à 99,99% vrai sauf ça où tu écris :
'S'il trouve la variable (quoi) dans la variable "trouve"
en faite c'est : s'il trouve la variable quoi, il range dans trouve l'adresse de la cellule trouvée.
Pour ton autre question, oui c'est tout à fait possible, c'est pas mon fort se genre de manip donc je ne vais pas te sauver sur ce coup là et tu devrais ouvrir un post juste pour ça (comme ça tu auras plus de visibilité)
Merci pour ton aide.
Oui galère le réglage de fours, surtout avec une seule zone de chauffe, pour peut que t'es pas de variateur de turbine .....
Encore un grand merci, bonne continuation
J'suis plus dans la boite mais on remplis nos objectif (rendement de 95%) Bon en se qui concerne ici, si tu peux clôturer se fil en le marquant comme résolu et en ouvrant un deuxième sujet pour le deuxième problème, tu auras une réponse assez rapidement car c'est quelque chose d'assez courant