Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Prendre données entre deux classeurs

  • Initiateur de la discussion Initiateur de la discussion Laguich
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

L

Laguich

Guest
Bonjour à tous,

J'ai un classeur avec environ 67000 lignes sur 3 colonnes et un deuxième avec environ 16000 lignes sur 3 colonnes également.

J'ai fait une macro pour qu'il recherche dans le classeur 2 les réferences identiques dans le classeur 1 et y ajoute en 4eme colonne la valeur de la 3eme colonne du classeur 2.
Code:
Sub test()
Dim wb As Workbook
Dim ws As Worksheet
Set wb = Workbooks("Base de données")
Set ws = wb.Worksheets("SOURCE")
 
Dim wb2 As Workbook
Dim ws2 As Worksheet
Set wb2 = Workbooks("SOURCECHERRE")
Set ws2 = wb2.Worksheets("Cherre")

Dim last_source As Range
Dim last_base As Range
 
Set last_source = ws.Range("a2:a67000")
Set last_base = ws2.Range("a1:a16000")
 
Dim row_source As Range
Dim row_base As Range
 
For Each row_source In last_source
    For Each row_base In last_base
        If row_source.Value = row_base.Value Then
            row_source.Offset(0, 4).Value = row_base.Offset(0, 3).Value
         End If
 
    Next
Next
End Sub
Cela marche quand je réduis à 80 lignes mais sur le total ça plante excel.
En faite il parcours toutes les lignes même si il a trouve la référence il continue la recherche jusqu'au bout avant de passer à la suivante.
Comment faut il proceder?

Merci d'avance.
 
Re : Prendre données entre deux classeurs

Oui j'ai essayé le DOevent et toutes tes autres apports.
Avec le Doevent plus de platage mais par contre apres avoir tourné 2h ce midi lr tri était loin d'être fini.
A premiere vue les tableaux virtuels sont plus rapide mais la je suis perdu
 
Re : Prendre données entre deux classeurs

Re,

essaye comme ceci :
Code:
Option Explicit
Sub test()
Dim wb As Workbook, ws As Worksheet
Dim wb2 As Workbook, ws2 As Worksheet
Dim last_source As Range, last_base As Range
Dim row_source As Range, row_base As Range
With Application
    .ScreenUpdating = False
    .Calculation = xlCalculationManual
End With
Set wb = Workbooks("Base de données")
Set ws = wb.Worksheets("SOURCE")
Set wb2 = Workbooks("SOURCECHERRE")
Set ws2 = wb2.Worksheets("Cherre")
Set last_source = ws.Range("a2:a" & Cells(Rows.Count, 1).End(xlUp).Row)
Set last_base = ws2.Range("a1:a" & Cells(Rows.Count, 1).End(xlUp).Row)
For Each row_source In last_source
    For Each row_base In last_base
        DoEvents
        If row_source.Value = row_base.Value Then
            row_source.Offset(0, 4).Value = row_base.Offset(0, 3).Value
            Exit For
        End If
    Next row_base
Next row_source
With Application
    .Calculation = xlCalculationAutomatic
    .ScreenUpdating = True
End With
End Sub
 
Re : Prendre données entre deux classeurs

Cela fonctionne mais l'état d'avancement est toujours plus que déplorable 🙁
EN 15 MIN des nouvelles ref de marquées que jusqu’à la ligne 250 environ sur fichier base en sachant qu'il doit y avoir un report complet des 9000 environ dans le fichier de 67000 environ.
 
Dernière modification par un modérateur:
Re : Prendre données entre deux classeurs

Pour info, le fichier peux être commun c a d pas 2 classeurs différents mais en 2 feuilles distinctes, j'ai donc essayé mais ce n'est pas mieux cela rame toujours autant.
Quelqu'un a une idée.
Merci d'avance.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
985
Réponses
3
Affichages
852
Réponses
5
Affichages
917
LeSaintKebab
L
D
Réponses
2
Affichages
1 K
Dafaka7
D
R
  • Question Question
Réponses
1
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…