Récupérer la valeur d'une cellule [Résolu/Fermé]

Signaler
-
NLAH
Messages postés
125
Date d'inscription
lundi 9 septembre 2013
Statut
Membre
Dernière intervention
13 juin 2017
-
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

Messages postés
15079
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
23 juin 2018
3787
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

1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 79281 internautes nous ont dit merci ce mois-ci

NLAH
Messages postés
125
Date d'inscription
lundi 9 septembre 2013
Statut
Membre
Dernière intervention
13 juin 2017
1
D'accord.
Mercii infiniment

ça marche très bien