Besoin d'aide sur vba pour copier des lignes dont la valeur commence par "F13"

nadine_camarasa

XLDnaute Nouveau
Bonjour à tous,

Je débute sur vba et j'ai un gros blocage que je n'arrive pas à faire faire fonctionner.
Je souhaite effectuer une recherche dans un fichier B d'une valeur entrée dans une cellule du fichier A.
La recherche doit trouver toutes les lignes dont la première colonne commencent par les 5 premiers termes de la cellule du fichier A.
Je les copie après
et cherche dans le fichier A la première ligne vide pour les coller.

J'espère que j'ai assez bien expliqué :confused:
En tout cas merci à ceux qui pourront m'aider.

Voici mon text vba:


Sub recherche()
Dim plage As Range, c As Range, chantier As Variant
chantier = Workbooks("C A essai.xlsm").Worksheets("Analyse Chantier").Range("F3").Value
MsgBox chantier
Workbooks.Open Filename:="C:\Documents and Settings\Nadine\Bureau\PFE\BDD.xlsx"
Workbooks("BDD.xlsx").Worksheets("RelevMO").Activate


'Plage de recherche ici B1 à Derniere cellule utilisée de colonne B
Set plage = Range("A1" & ":A" & Range("A65000").End(xlUp).Row)
'Pour chaque cellule de la plage de recherche

For Each c In plage
'je met dans une variable les 5 premiers caractères de la cellule
vval = Left(c.Value, 5)
'Si vval = total alors j'efface la ligne entiere
If vval = chantier Then
c.EntireRow.Copy
Workbooks("C A essai.xlsm").Worksheets("AC").Activate
'Range("A1").Select
Range("A65536").End(xlUp).Offset(1, 0).Select
Do While Not (IsEmpty(ActiveCell))
Selection.Offset(1, 0).Select
Loop
ActiveSheet.Paste
Workbooks("BDD.xlsx").Worksheets("RelevMO").Activate
End If

Next c

End Sub
 

JNP

XLDnaute Barbatruc
Re : Besoin d'aide sur vba pour copier des lignes dont la valeur commence par "F13"

Bonjour Nadine et bienvenue :),
La copie d'Excel est un peu particulière (à cause des collages spéciaux je présume). Donc dès que tu recherches la cellule vide, ta sélection n'est plus copiée.
Essaie de déplacer le .copy, mais sans garantie...
Code:
Loop
c.EntireRow.Copy
ActiveSheet.Paste
En général, on stocke plutôt dans une variable la ligne vide, et on fait la copie directe ;).
Bonne journée :cool:
 

kjin

XLDnaute Barbatruc
Re : Besoin d'aide sur vba pour copier des lignes dont la valeur commence par "F13"

Bonjour, salut JNP
Non testé
Code:
Sub recherche()
Dim plage As Range, c As Range, chantier As String
With Workbooks("C A essai.xlsm")
    chantier = .Worksheets("Analyse Chantier").Range("F3").Value
    dl = .Worksheets("AC").Range("A65000").End(xlUp).Row + 1
End With

MsgBox chantier
Workbooks.Open Filename:="C:\Documents and Settings\Nadine\Bureau\PFE\BDD.xlsx"
With Worksheets("RelevMO")
    Set plage = .Range("A1:A" & .Range("A65000").End(xlUp).Row)
    For Each c In plage
        If c Like chantier & "*" Then
            c.EntireRow.Copy Workbooks("C A essai.xlsm").Worksheets("AC").Cells(dl, 1)
            dl = dl + 1
        End If
    Next
End With

End Sub
A+
kjin
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 370
Messages
2 087 693
Membres
103 641
dernier inscrit
anouarkecita2