Trouver la position d'une cellule de la famille de pièce en Vba SolidWorks

Bonjour,

Je suis de retour sur une macro et je change un peu de technique donc j'aimerais avoir votre aide svp.

J'ai un fichier CAO avec une famille de pièces d'environ 30 configurations dont les noms sont chargés dans une liste grâce à une boucle For afin que l'utilisateur puisse choisir celle dont il a besoin.
Chaque configuration représente des plages de diamètre de la même pièce : Config 1 = Pièce A avec Ø0.1 - 1.0, Config 2 = Pièce A  avec Ø 1.01 - 3.0, Config 3 = Pièce A avec Ø3.01 - 10.0 etc. A l'aide des UserFroms que j'ai créé l'utilisateur peut renseigner le diamètre dans la plage qu'il a sélectionné (étant un paramètre). Puis j'aimerais que la valeur écrite dans la textbox dédiée aille dans la cellule de la famille de pièce dont la ligne est celle de la configuration choisie et la colonne correspondant au paramètre du diamètre.
Pour cela j'ai donc besoin de trouver la position de la cellule de la configuration, en réalité la ligne me suffit car je sais qu'elle est en colonne A pour ensuite me décaller à droite jusqu'à trouver la bonne colonne.

Explication en image :

J'aimerais connaître le numéro de ligne de la cellule rouge pour pouvoir écrire la valeur du Ø dans la cellule verte.

Tout ça pour dire que j'aimerais trouver la position d'une cellule en code VBA svp.
J'espère que j'ai été clair et merci de vos réponses,

Bonne journée,

Roub25

Comme sa sans tester juste de tete je ferait une boucle sur toute les ligne et des que ta valeur precedement choisi match alors tu execute ton code (je ne suis pas tres fan des fonction de recherhe de Excel :!)

2 « J'aime »

Salut,

Puisque tu nous as dit ce que tu cherches, dis-nous quel(s) critère(s) de recherche tu possèdes...

Bonjour,

En c# ça pourrait donner quelque chose comme ça :

sheet = workbook.ActiveSheet;
int i = 1;
while (sheet.Cells(i, "A").value != "D03.97 - 8.99")
{
    i++;
}
MessageBox.Show("Ligne n° :" + i);

Cordialement,

Salut,

 

Comme ça,  très rapidement et sans pouvoir vérifier, il me semble que ça donnerais un truc du genre :

 

Diametre = InputBox("Quel diametre ?", "Choix du diametre", Diametre) 'Box de saisie du diametre

Set Trouve = Columns("C").Find(what:=Diametre, lookat:=xlWhole) 'Recherche de la valeur "Diametre" en valeur exact (lookAt:=xlWhole) dans la colonne C
If Trouve Is Nothing Then 'Si la valeur n'est pas trouvée

Msgbox "Le diamètre n'existe pas"

Else
   ligne = Trouve.Row 'Renvoie le N° de la ligne

End if

ActiveSheet.cells(ligne,"A") = activecells

 

Surement à rebidouiller un peu, mais ça devrait bien t'aider :)

Merci à tous pour vos réponses !

Effectivement une simple boucle While suffit pour faire ce que je demandais merci .

2 « J'aime »

Sous Excel, il y a les fonctions RECHERCHE, RECHERCHEH, RECHERCHEV