bnono1975 | Bonjour à vous, amis développeurs!
J’ai besoin d’aide sur ma macro qui plante. J’imagine que la réponse est évidente, mais pas pour moi !!
J’explique le contexte. Je reçois quotidiennement par un extract (Feuil1 ou FL1) sur excel de 9 colonnes et environ 10 à 20 lignes par jour (des fois plus , des fois moins), à traiter. (La 1ere ligne est l'entête)
De l’autre côté, j’ai un reporting (Feuil2 ou FL2) de 60 colonnes et 15.000 lignes.
Les 9 colonnes de l’extract correspondent aux 9 premières colonnes de mon reporting.
Mes commandes extract sont présentes dans mon reporting et j’ai d’autres commandes que je considère « doublon » (excepté la colonne A qui est unique) lorsque les cellules des colonnes (C/G/I) 3,7 et 9 sont identiques.
Je voudrais donc récupérer à partir de mon reporting (Feuil2 ou FL2) les commandes « doublon » et les coller dans la Feuil1 sous les données déjà présentes. (uniquement les 9 colonnes, la suite n’est pas importante, pour ce traitement en tout cas !)
Mon problème est :
Ma macro plante quand je sélectionne mes cellules.
Je n’arrive pas à sélectionner la cellule vide après mes données FL1 pour coller.
Je ne sais pas sélectionner les 9 colonnes, du coup je prends toute la ligne…..
Merci pour votre aide.
Code :
- Sub Macro10()
- '
- ' Macro10 Macro
- '
- Dim K As Long, J As Long, Plage() As String, Plag() As String
- Dim Cherch As String, Ligne As Long, Lig As Long
- Dim FL1 As Worksheet
- Dim FL2 As Worksheet
- Application.EnableEvents = False
- Application.ScreenUpdating = False
-
- Set FL1 = Sheets("Feuil1" ) 'Destination
- Set FL2 = Sheets("Feuil2" ) 'origine
- Lig = FL2.Range("A65536" ).End(xlUp).Row
- Ligne = FL1.Range("A65536" ).End(xlUp).Row
-
- ReDim Plage(2 To Lig)
- For J = 2 To Lig: Plage(J) = FL2.Cells(J, 3) + FL2.Cells(J, 7) + FL2.Cells(J, 9): Next
-
- For K = 2 To Ligne
- Cherch = FL1.Cells(K, 3) + FL1.Cells(K, 7)+ FL3.Cells(K,9)
- For J = 2 To Lig
- If Cherch = Plage(J) Then
- FL2.Cells(J).EntireRow.Copy FL1.Cells(K)
-
- Exit For
- End If
- Next J
- DoEvents
- Next K
- Application.EnableEvents = True
- Application.ScreenUpdating = True
- End Sub
|
|