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 Sub

J'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 Sub

En 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 . J'ai donc utilisé xlwhole au lieu de xlpart et ça semble ok.

Merci encore pour ton support!

Rechercher des sujets similaires à "macro recherche copie"