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

XL 2021 VBA - Importer des données

OULDTA

XLDnaute Nouveau
bonsoir,
J'ai essayer l'importation de tableaux Excel(matrice consolidée) dans le classeur "matrice"dans
un autre fichier Excel (matrice global) vers le classeur spécifie "matrice"
à l'aide de VBA ça ne fonctionne pas comme prévu ?
Et aussi je veux importer les 03 matrices consolidées vers le matrice global la feuille renommer "matrice"
Quel est la solution ?
vous trouverai le code vba dans la matrice global
Merci d'avance
 

Pièces jointes

  • Matrice_Consolidée_2024_KB.xlsx
    855.3 KB · Affichages: 4
  • Matrice_Consolidée_2024_TO.xlsx
    827.8 KB · Affichages: 3
  • Matrice_onsolidée_2024_AD.xlsx
    705.3 KB · Affichages: 2
  • Matrice_Globale_2024 .xlsm
    976.2 KB · Affichages: 3
Dernière édition:
Solution
pour ta macro, essaie ceci

VB:
Sub recuperedatamatrice()

    'déclarations des variables
    Dim listefichier As Variant
    Dim MonClasseur  As Workbook
    Dim Tab1() As Variant 'pour la colonne "Matricule"
    Dim Tab2() As Variant 'pour les colonnes AbsenceRetard==>Motifs
    
    
    'on désactive le Raffraichissement de l'écran
    Application.ScreenUpdating = False
    
    'en récupére les fichiers des données à copier
    listefichier = Application.GetOpenFilename(Title:="selectionner votre classeur", filefilter:="fichiers Excel(*.xls*),*xls*", Buttontext:="cliquer")
    
    'prévoir le cas du bouton annuler
    If listefichier = False Then GoTo fin
    
    'on affecte le fichier sélectionner
    Set MonClasseur =...

vgendron

XLDnaute Barbatruc
Hello

la feuille matrice que tu essaies de copier ne s'appelle pas "Matrice" mais "Matrice " un espace en trop

ensuite.. je ne comprend pas trop tes fichiers
tu as 4 fichiers différents qui contiennent la meme chose??

vu la taille des fichiers et la quantité de données, tu aurais tout intérêt à utiliser PowerQuery
 

vgendron

XLDnaute Barbatruc
pour ta macro, essaie ceci

VB:
Sub recuperedatamatrice()

    'déclarations des variables
    Dim listefichier As Variant
    Dim MonClasseur  As Workbook
    Dim Tab1() As Variant 'pour la colonne "Matricule"
    Dim Tab2() As Variant 'pour les colonnes AbsenceRetard==>Motifs
    
    
    'on désactive le Raffraichissement de l'écran
    Application.ScreenUpdating = False
    
    'en récupére les fichiers des données à copier
    listefichier = Application.GetOpenFilename(Title:="selectionner votre classeur", filefilter:="fichiers Excel(*.xls*),*xls*", Buttontext:="cliquer")
    
    'prévoir le cas du bouton annuler
    If listefichier = False Then GoTo fin
    
    'on affecte le fichier sélectionner
    Set MonClasseur = Application.Workbooks.Open(listefichier)
    'on copies les données de la feuille du classeur sélectionné
    
    With MonClasseur.Sheets("Matrice")
        LastLine = .Range("C" & .Rows.Count).End(xlUp).Row 'dernière ligne NON vide de la colonne C
        Tab1 = .Range("C14:C" & LastLine).Value 'on met toutes les données de la colonne C dans Tab1
        Tab2 = .Range("N14:AE" & LastLine).Value 'on met toutes les données des colnnes N à AE dans Tab2
    End With
    
        
    'on colle les données dans la feuille active
    ThisWorkbook.ActiveSheet.Range("C8").Resize(UBound(Tab1, 1), 1) = Tab1
    ThisWorkbook.ActiveSheet.Range("N8").Resize(UBound(Tab2, 1), UBound(Tab2, 2)) = Tab2
    
    'on désactive les messages d'alerte de microsoft
    Application.DisplayAlerts = False
    'on ferme le classeur source
    MonClasseur.Close
    
fin:
    Application.ScreenUpdating = True
     Application.DisplayAlerts = True

End Sub
 

OULDTA

XLDnaute Nouveau
Hello
j'ai essayer avec power query çà na pas marcher
aussi avec vba
juste j’ai besoin d'importer des colonnes des données brutes ("C14:C350,N14:AE350") de ces 03 fichier matrice consolidée vers la matrice global des colonnes ("C8,N14:AE350")
 
Dernière édition:

Discussions similaires

Réponses
1
Affichages
203
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…