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

Signaler
-
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
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 450
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
Merci

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

CCM 65492 internautes nous ont dit merci ce mois-ci

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