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

VBA Importation de données avec un critère vers un autre classeur.

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 !

quicestraoul

XLDnaute Nouveau
Bonjour,

Je sais que vous n'êtes pas une société de services en ingénierie informatique. Mais j'ai vraiment besoin de votre aide.

Voici
Je souhaite que sur une feuille il y ait un bouton en cliquant sur ce dernier il me propose d'ouvrir un classeur, puis recherche dans la première colonne 2015. Pour chaque ligne où dans la 1ère colonne il y a 2015 la sélectionner et la copier dans mon classeur d'origine sur une autre feuille que celle où il y a le bouton. puis répéter l’opération pour 32 fichiers différents que je souhaite choisir. Les fichiers sources sont des extracts d'un progiciel qui doivent rester inchangés. Les extracts sont fait par une personnes pour tout le monde. Je dois copier-coller les lignes où la première cellule en colonne A commence par 2015.
je suppose utiliser :


Code:
Public FeuilleSynFi As Worksheet
Public Const SynFi_NumColRubrique As Integer = 1
Public ListeFE As Worksheet
 
Sub Upload_synth()
       Application.Workbooks.Open Application.GetOpenFilename()
          If (FichierSelectionne = "") Then
              ' Pas de fichier sélectionné
              AbandonneTraitement = True 
 
          Else
For j = 1 To 100000
    If (FeuilleSynFi.Cells(SynFi_NumLig, SynFi_NumColRubrique).Value = "2015" & "*") Then
                Rows(ActiveCell.Row).Select
                Selection.Copy
                Selection.Paste Destination:=ListeFE.Cells(LastRow, j + 1)
       Next for
 End If
 
End Sub

Mais je n'y arrive pas du tout.

Merci de votre aide.
 
Re : VBA Importation de données avec un critère vers un autre classeur.

bonjour quicestraoul, le forum,
pour commencer, bienvenue sur xld, je suis sûr que tu trouveras des réponses à tes questions!

Ensuite dis-nous où ça bloque ton code... ouverture de fichier? repérage des 2015? copie dans autre classeur? etc

De plus tu dis :
Pour chaque ligne où dans la 1ère colonne il y a 2015 la sélectionner et la copier dans mon classeur d'origine sur une autre feuille que celle où il y a le bouton.
On copie bien toutes les lignes 2015 trouvées sur la même feuille, qui est une autre feuille que celle avec le bouton c'est ça?
Et ce, pour tous les classeurs choisis?

A+
 
Re : VBA Importation de données avec un critère vers un autre classeur.

Bonjour et merci de ton accueil chaleureux 🙂

Mon code ne bloque pas. il n'extrait pas les données c'est tout lol en gros il m'ouvre le premier et fichier et après plus rien.
On copie toutes les lignes 2015 trouvées sur la même feuille, qui est une autre feuille que celle avec le bouton. Le bouton est sur la feuille 1 du classeur A et et les lignes sont avec 2015 sont dans le classeur B-C-D etc. et je veux réunir ces lignes sur la feuille C du classeur A
Et ce, pour tous les classeurs choisis dans leur répertoire.

Je ne sais pas si c'est clair?

JE t'attache mon fichier final. EN gros la page Snipers et liste complète sont les feuilles ou devront etre collé les infos des autres classeurs
 

Pièces jointes

Re : VBA Importation de données avec un critère vers un autre classeur.

ok.

S'il ne copie rien c'est surement qu'il ne trouve pas de 2015. Tu peux essayer de faire le pas à pas avec F8 une fois dans ton code pour voir comment il réagit. Je teste et te dis ça!
C'est toi qui choisis a la mano les fichiers ou tu as un critère précis qu pourrait les identifier/différencier?
 
Re : VBA Importation de données avec un critère vers un autre classeur.

Non c'est moi qui choisi à la mano car leur nom peuvent varier.

Je viens d'essayer avec F8 il bug à l'ouverture du fichier. lorsque je clique sur ouvrir après plus rien.
 
Re : VBA Importation de données avec un critère vers un autre classeur.

essaie avec ce code!
VB:
Sub t()
       nf = Application.GetOpenFilename("Fichiers Xls,*.xls*")
    If Not nf = False Then
        Workbooks.Open nf
        Set AWB = ActiveWorkbook
        
            For j = 1 To 100000
                If AWB.Sheets(1).Cells(j, 1) = 2015 Then
                    AWB.Sheets(1).Rows(j).Copy ThisWorkbook.Sheets(3).Range("A100000").End(xlUp).Offset(1, 0)
                End If
            Next j
    End If


End Sub
 
Re : VBA Importation de données avec un critère vers un autre classeur.

Fais le au pas à pas.
N'ayant pas ton fichier avec les données je ne sais pas comment faire mieux.
Dans ta colonne A de ton fichier à ouvrir, il y a écrit exactement 2015 ou 2015 et autre chose? L'erreur peut venir de là!

AWB est une variable que j'ai créée pour activeworkbook (classeur actif), c'est à dire celui qu'on ouvre via le code et d'où on copie la ligne!
 
Re : VBA Importation de données avec un critère vers un autre classeur.

je l'ai fait pas à pas. et lorsque je clique sur ouvrir ça ouvre le fichier choisi mais après je rappuie sur F8 et la ça repars du début

Dis toi que le classeur avec les données est comme la feuille liste complète.
Pour se qui est du 2015 : c'est 2015-01 actuellement mais le mois prochain ce sera 2015-02 d'où le "2015" & "*" dans ma macro d'origine
 
Re : VBA Importation de données avec un critère vers un autre classeur.

Je me rappelle plus comment on cherche avec caractère joker, du coup j'ai contourné le problème.
Nouveau code :
VB:
Sub t()
       nf = Application.GetOpenFilename("Fichiers Xls,*.xls*")
    If Not nf = False Then
        Workbooks.Open nf
        Set AWB = ActiveWorkbook
        
            For j = 1 To 100000
                If Left(AWB.Sheets(1).Cells(j, 1), 4) = 2015 Then
                    AWB.Sheets(1).Rows(j).Copy ThisWorkbook.Sheets(3).Range("A100000").End(xlUp).Offset(1, 0)
                End If
            Next j
    End If
AWB.Close


End Sub
Dis-nous ce qu'il en est!
 
Re : VBA Importation de données avec un critère vers un autre classeur.

Super idée le left.

Erreur 429 Un composant activX ne peut pas créer d'objet

AWB.Sheets(1).Rows(j).Copy ThisWorkbook.Sheets(3).Range("A100000").End(xlUp).Offset(1, 0)
 
Re : VBA Importation de données avec un critère vers un autre classeur.

je ne suis pas sur de l'étoile coller au 2015 non?
Sinon l'erreur est toujours la même sur la ligne d'en dessous :

Code:
                    AWB.Sheets(1).Rows(j).Copy ThisWorkbook.Sheets(3).Range("A100000").End(xlUp).Offset(1, 0)
 
- 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

Discussions similaires

  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
176
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
652
Réponses
3
Affichages
585
Réponses
7
Affichages
798
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…