Récupérer la valeur d'une cellule

Résolu/Fermé
nihadlahit - 3 août 2016 à 15:49
NLAH Messages postés 125 Date d'inscription lundi 9 septembre 2013 Statut Membre Dernière intervention 13 juin 2017 - 4 août 2016 à 00:30
Bonjour,
je suis débutante en vba,je voudrais créer une macro qui effectue les fonctionnalités suivantes:

1- demander a l'utilisateur d'entrer une valeur
2- chercher cette valeur dans la feuille 3, dans la plage ---> B2:B100
4-récupérer par la suite la ligne de cette cellule dans une variable nommée "lig",puis enregistrer la valeur de la cellule cells("lig"$ C) dans une variable "val"
3-retourner vers la feuille 1 et copier la plage --- > A1:D3,puis la coller dans la plage -->A1:D3 de la feuille2
4- chercher maintenant la valeur saisie dans la ligne 1 de la feuille 2
5-récupérer la colonne de cette cellule dans une variable "col"
6-sélectionner la cellule (ligne n° 3 de la feuille2 $ "col") puis enregistrer dans cette cellule la variable "val"

j'ai essayée le code suivant, mais il me donne toujours des erreurs lors de la compilation :

Dim x As Integer, celfind As Range, lig As Integer, col As Integer, m As Range
With Worksheets("Feuil3").Range("B1:B100")
x = InputBox("saisir le numéro de la commande")
Set celfind = .Find(x)
lig = celfind.Row
With Worksheets("feuil1").Range("A1:D3")
Selection.Copy
Worksheets("feuil2").Range("A1:D3").Select
ActiveSheet.Paste
End With
Set m = Worksheets("feuil2").Rows("1").Find(celfind)
col = m.Column
Worksheets("feuil2").Range("3 & col").Value = Worksheets("feuil3").Range("lig & C").Value
End With

prière de m'aider s'il veut plait,

Merci

1 réponse

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
3 août 2016 à 21:58
Bonjour,

Lorsque tu met du code utilise les codes car c'est plus lisible.
Ta macro corrigée :
Dim x As Variant, celfind As Range, lig As Integer, col As Integer, m As Range
With Worksheets("Feuil3").Range("B1:B100")
    x = InputBox("saisir le numéro de la commande")
    Set celfind = .Find(x)
    lig = celfind.Row
    With Worksheets("feuil1").Range("A1:D3")
        .Copy Destination:=Worksheets("feuil2").Range("A1")
    End With
    Set m = Worksheets("feuil2").Rows("1").Find(celfind)
    col = m.Column
    Worksheets("feuil2").Cells(3, col).Value = Worksheets("feuil3").Cells(lig, 3).Value
End With

2
NLAH Messages postés 125 Date d'inscription lundi 9 septembre 2013 Statut Membre Dernière intervention 13 juin 2017 2
4 août 2016 à 00:30
D'accord.
Mercii infiniment

ça marche très bien
0