Copier une valeur en fonction d'une cellule
Bonjour,
Je me présente rapidement car c'est mon premier post. Je m'appelle Benoît, je suis apprenti ingé. J'ai de petite base en VBA mais rien de très fou, je ne pratique pas suffisamment pour conserver les acquis que j'ai eu.
J'ai aujourd'hui un problème pour l'école, je suis sur un projet de création d'un fichier Excel permettant d'automatiser le dimensionnement d'un nombre de condensateur pour un circuit électrique. La partie dimensionnement ne concerne pas le forum, je sais.
Mon problème est que je n'arrive pas a faire identifier a VBA une cellule en fonction de la valeur d'une première. Je passe par un bouton pour exécuter le programme.
Private Sub CommandButton1_Click()
Dim i As Integer 'Ma plage de ligne
Dim valeur1 As String 'Récupéré une première valeur (correspond a un type de condensateur)
Dim Valeur2 As String 'Récupéré une autre valeur (correspond a un autre type de condensateur)
Dim valeur3 As String 'Récupéré une autre valeur (correspond a un autre type de condensateur)
Dim valeur4 As String 'Récupéré une autre valeur (correspond a un autre type de condensateur)
For i = 4 To 2208
If Feuil1.Range("O25").Value = Feuil3.Range("C" & i).Value Then 'La cellule O25 est fixe, je dois lire sa valeur et chercher dans la base de donnée ou elle se trouve
valeur1.Value = Feuil3.Range("D" & i).Value 'Je veux enregistré la Valeur1 comme étant la valeur contenu dans Di
Valeur2.Value = Feuil3.Range("E" & i).Value 'Je veux enregistré la Valeur2 comme étant la valeur contenu dans Ei
valeur3.Value = Feuil3.Range("F" & i).Value 'Je veux enregistré la Valeur3 comme étant la valeur contenu dans Fi
valeur4.Value = Feuil3.Range("G" & i).Value 'Je veux enregistré la Valeur4 comme étant la valeur contenu dans Gi
End If
Exit For
Next i
Feuil1.Range("Y25").Value = valeur1.Value 'Je veux que la valeur de Y25 soit celle enregistré plus tot dans Gi
Feuil1.Range("V25").Value = Valeur2.Value 'Je veux que la valeur de V25 soit celle enregistré plus tot dans Fi
Feuil1.Range("S25").Value = valeur3.Value 'Je veux que la valeur de S25 soit celle enregistré plus tot dans Ei
Feuil1.Range("P25").Value = valeur4.Value 'Je veux que la valeur de P25 soit celle enregistré plus tot dans Di
End Sub
J'espère que j'ai été suffisamment claire pour pouvoir avoir de l'aide, ce n'est jamais simple d'expliquer son problème ahah.
Bonne journée à vous et j'espère à bientôt !
Bonjour,
Pour commencer, valeur1 (et aussi 2, 3 et 4) sont des variables censées contenir un texte, et pas des cellules. Elles n'ont donc pas de propriété .Value. Il faut juste écrire : valeur1 = "Truc".
Ensuite, le Exit For est un inclure dans la condition If. Car actuellement, on quitte la boucle systématiquement dès le 1er tour...
Bonjour Pedro22,
Et bien merci beaucoup, votre correction m'a permis de lui faire faire ce que je voulais !