|
|
|
|
Bonjour,
Je souhaite saisir une valeur contenue dans une cellule( Fonction copier ),
rechercher cette valeur dans une plage de cellules d'un autre classeur afin
de sélectionner une partie de la ligne située 7 cases à droite de cette cellule
contenant la bonne valeur pour ensuite copier cette nouvelle slection.
La nouvelle selection effectuée doit ensuite
être coller dans le premier classeur.
Elle doit être lancée par une MACRO.
Les essais effectués supprime les valeurs cherchées.
Pouvez vous m'indiquer quel est le Sub de MACRO pour obtenir le bon résultat ?
Merci à tous
ps : Excel 2003
Configuration: Windows XP Internet Explorer 6.0
Répondre à lermite222
|
Merci Lermite222,
|
Bonjour,
|
Maintenant ont va pouvoir commencer le débogage...Mais reste quelques points obscures...
|
C'est dur a comprendre...
Sub CopieCell()
Dim FL1 As Worksheet
Dim FL2 As Worksheet
Dim i As Long, e As Long
Dim Valcherche As Variant
Set FL1 = Workbooks("classeur1").Worksheets("feuil1")
Set FL2 = Workbooks("classeur2").Worksheets("feuil1")
'Pour aller jusqu'a la dernière ligne renseignée.
For i = 6 To FL1.Range("A1").SpecialCells(xlCellTypeLastCell).Row
'Valcherche = FL1.Cells(i, 2).Value 'Pas nécessaire.
For e = 1 To FL2.Range("A1").SpecialCells(xlCellTypeLastCell).Row
If FL2.Cells(e, 3) = FL1.Cells(i, 2).Value Then
Stop
Next e
Next i
End Sub
L'expérience instruit plus sûrement que le conseil. (André Gide)
|
Ca vaux pas la peine que je remette les classeur,copie la macro ci-dessous DANS UN MODULE (pas un module de feuille)
Sub CopieCell()
Dim FL1 As Worksheet
Dim FL2 As Worksheet
Dim i As Long, e As Long
Dim Valcherche As Variant
' Set FL1 = Workbooks("classeur1").Worksheets("feuil1")
' Set FL2 = Workbooks("classeur2").Worksheets("feuil1")
'Pour le test dans le classeurs envoyer...
Set FL1 = Workbooks("Pour-Macro.xls").Worksheets("Classeur1 Feuil1")
Set FL2 = Workbooks("Pour-Macro.xls").Worksheets("Classeur2 Feui 2")
'Pour aller jusqu'a la dernière ligne renseignée.
For i = 7 To FL1.Range("B1").SpecialCells(xlCellTypeLastCell).Row
For e = 6 To FL2.Range("B1").SpecialCells(xlCellTypeLastCell).Row
If FL2.Cells(e, 2) = FL1.Cells(i, 3).Value Then
FL2.Range(Cells(e, 4), Cells(e, 7)).Copy FL1.Cells(i, 4)
End If
Next e
Next i
End Sub
Reste une chose que j'ai pas compris, la colonne avec les ok et nok, elle sert à quoi ? Et toutes les données sont toujours recopiées ou bien uniquement cells qui ne sont pas encore actualisées ? L'expérience instruit plus sûrement que le conseil. (André Gide) |
Bonjour Lermite222,
|
Si la macro "ne passe pas" c'est que tu ne l'a pas tester sur le fichier que tu m'a envoyer, je l'ai tester plusieurs fois et elle fonctionnait parfaitement.
|