Macro recherche / copie
Bonjour à toutes et à tous,
J'ai un fichier base de données sur lequel je fais régulièrement des extractions et des stats. Cela fonctionne parfaitement pour les petits fichiers (2000 à 3000 lignes) avec le code suivant : toutes les lignes contenant R30297 sont copiées / collées dans la feuille du même nom
Sub Cherche_Copie_R30297()
Dim strSearch
Dim rg As Range, rgF As Range
Dim i As Integer
Application.ScreenUpdating = False
Set rg = Sheets("Masterfile").Cells(1).CurrentRegion
For i = 1 To rg.Rows.Count
Set rgF = rg.Rows(i).Find("R30297", , xlValues, xlPart)
If Not rgF Is Nothing Then
rg.Rows(i).Copy Sheets("R30297").Range("A60000").End(xlUp).Offset(1, 0)
Set rgF = Nothing
End If
Next i
Application.ScreenUpdating = True
End SubJ'essaie d'optimiser en intégrant le fichier central (approx 26.000 lignes!!) plutôt que de sélectionner et copier coller pour chaque distributeur, pour cela il me faudrait utiliser la même fonction pour extraire les lignes concernées pour chaque distributeur (son nom se trouve en colonne C) et le coller dans mon onglet Masterfile.
J'ai modifié le code déjà utilisé, ce qui donne : toutes les lignes contenant le nom du distributeur sont copiées / collées dans la feuille Masterfile
Sub Cherche_Copie_CE()
Dim strSearch
Dim rg As Range, rgF As Range
Dim i As Integer
Application.ScreenUpdating = False
strSearch = Application.InputBox("Indiquer le nom distributeur : ")
Set rg = Sheets("MasterfileFrance").Columns(3)
For i = 1 To rg.Rows.Count
Set rgF = rg.Rows(i).Find(strSearch, , xlValues, xlPart)
If Not rgF Is Nothing Then
rg.Rows(i).Copy Sheets("Masterfile").Range("A60000").End(xlUp).Offset(1, 0)
Set rgF = Nothing
End If
Next i
Application.ScreenUpdating = True
End SubEn lançant la macro j'ai une erreur d'execution '6' : dépassement de capacité.
N'étant qu'un novice en VBA, je me demande simplement si j'aurais fait une erreur dans la définition de la zone de recherche columns(3) pour colonne C, ou si excel refuse de compter mes 26.000 lignes?
Bien à vous.
Nicolas
Bonsoir
essaye dim i as long plutot qu'integer
FINDRH
Merci à toi, je n'ai plus l'erreur. J'avais de fait un autre souci lié à mon codage de base sur la zone de recherche, ça ne copiait que la colonne C
Merci encore pour ton support!