Trouver la valeur d'une cellule dans la colonne d'un tableau

Bonjour à tous et merci de votre aide

Je voudrais le code vba qui me permettent de faire l'opération suivante :

J'ai un fichier 1 qui comporte en cellule C7 la valeurs que je voudrais trouver dans la colonne A du fichier 2, puis coller la valeur de la cellule D1 du fichier 1 dans la colonne B du fichier 2 au même niveau de la valeur trouvée.

Merci à ceux qui s'y colleront

Bonjour,

Voici un essai avec les informations communiquées, ou j'ai interprété fichier 1 et fichier 2 comme 2 feuilles du même classeur :

Sub test()

dim f1 as worksheet, f2 as worksheet, ligne as long

set f1 = sheets("fichier1"): set f2 = sheets("fichier2") '<<<ADAPTER NOMS !!!!

if application.countif(f2.columns(1), f1.range("C7")) > 0 then
    ligne = application.match(f1.range("C7"), f2.columns(1), 0)
    f2.range("B" & ligne).value = f1.range("D1")
else
    msgbox "valeur de C7 introuvable dans fichier 2"
end if

end sub

Cdlt,

Bonjour,

Merci de ton aide .

Lors de l'exécution de la macro , le message d'erreur "variable non définie " apparaît pour le mot ligne (apres le then).

Aurais tu le correctif stp?

Bonjour,

J'ai édité mon code... Il suffit de définir la variable ou d'enlever Option Explicit.

Cdlt,

Re bonjour et encore merci de ton aide,

Je galère toujours, en fait l'opération doit se faire sur 2 fichiers différents.

Voici comment j'ai adapté l'affaire mais, ça ne fonctionne pas.

Au niveau de la déclaration de variable feuilsuivi (propriété ou méthode non gérée par cet objet)

Aurais tu une solution à ce problème.

Si tu avais l'amabilité de jeter un oeil sur ce code et me dire si ça te semble correct.

Dim docco1 As Workbook
Set docco1 = ThisWorkbook

Dim docco2 As Workbook
Set docco2 = Application.Workbooks.Open("C:\Users\DocsCo et SuiviCo\Suivi commercial\30SuiviCo300.xlsm")

Dim feuilsuivi As Worksheet
Set feuilsuivi = docco2.worsheets("Suivi")

If Application.CountIf(docco2.feuilsuivi.Columns(1), docco1.Range("C6")) > 0 Then
Rows = Application.Match(docco1.Range("C6"), docco2.feuilsuivi.Columns(1), 0)
docco2.feuilsuivi.Range("U" & Rows).Value = docco1.Range("G47")

End If

Oui, ça aurait été mieux avec des infos plus précises au départ...

Voici une adaptation où il faudra bien affecter la variable f1.

Sub azert()

Dim docco1 As Workbook, docco2 As Workbook
Dim f1 as worksheet, f2 As Worksheet
Dim ligne& 'PAS DE VARIABLE "Rows"

Set docco1 = ThisWorkbook
Set docco2 = Workbooks.Open("C:\Users\DocsCo et SuiviCo\Suivi commercial\30SuiviCo300.xlsm")
set f2 = docco2.worksheets("Suivi") '<<< il manquait un petit "k" :), sinon c'est correct
set f1 = docco1.sheets(1) '<<< ???

If Application.CountIf(f2.Columns(1), f1.Range("C6")) > 0 Then 'ici ca aurait coincé a cause du docco1.range
    ligne = Application.Match(f1.Range("C6"), f2.Columns(1), 0)
    f2.Range("U" & ligne).Value = f1.Range("G47")
End If

end sub

Pour que tu comprennes, les cellules appartiennent à des feuilles, qui elles appartiennent à des classeurs. Il n'y a pas de cellules sur un classeur. Quand, dans un code, une cellule est écrite seule (ex : range("A1")), c'est parce qu'implicitement, on dit activesheet.range("A1") (qui revient à activeworkbook.activesheet.range("A1")).

Cdlt,

Ca marche du tonnerre.

Merci de ton de temps l'ami et pour ton aide.

Change rien.

bonne journée

! Merci, bonne journée à toi aussi !

Rechercher des sujets similaires à "trouver valeur colonne tableau"