Microsoft 365 adapter l'excellent code de Job75

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,
Je vous souhaite "tout plein" de meilleures choses en ces temps si difficiles :)

Je reviens vers vous et plus particulièrement vers notre Gérard "National Excel" qui a fait comme d'habitude un excellent code pour importer les infos de plusieurs classeurs fermés dans dans un autre classeur "ouvert celui-là lol".
Mais je n'arrive à comprendre comment l'adapter.

Voici le code :
VB:
Option Explicit

Sub Consolider()
'se lance par les touches Ctrl+C
Dim chemin$, fichier$, feuille$, ncol%, F As Worksheet, lig&, form$, h&, h1&
chemin = ThisWorkbook.Path & "\" 'dossier à adapter
fichier = Dir(chemin & "*.xlsx") '1er fichier du dossier
feuille = "Feuil1" 'nom des feuilles à copier, à adapter
ncol = 29 'nombre de colonnes, à adapter
Set F = Feuil1 'CodeName de la feuille de restitution, à adapter
lig = 1 '1ère ligne de restitution, à adapter
Application.ScreenUpdating = False
F.[A1].CurrentRegion.EntireRow.Offset(2).Delete 'RAZ
While fichier <> ""
    If fichier Like "##_##_##*" Then
        form = "'" & chemin & "[" & fichier & "]" & feuille & "'!"
        h = 0: h1 = 0
        On Error Resume Next
        h = ExecuteExcel4Macro("MATCH(""zzz""," & form & "C1)")
        h1 = ExecuteExcel4Macro("MATCH(9^9," & form & "C1)")
        On Error GoTo 0
        h = IIf(h > h1, h, h1)
        If h > 2 Then
            If lig > 1 Then F.Rows("1:2").Copy F.Rows(lig) 'titres
            F.Cells(lig + 1, "R") = ExecuteExcel4Macro(form & "R2C18") 'date
            F.Cells(lig + 1, "S") = ExecuteExcel4Macro(form & "R2C19") 'date
            With F.Cells(lig + 2, 1).Resize(h - 2, ncol)
                .FormulaArray = "=" & form & "R3C1:R" & h & "C" & ncol 'formule de liaison matricielle
                .Value = .Value 'supprime la formule
                .Replace 0, "", xlWhole 'supprime les zéros
            End With
            lig = lig + h
        End If
    End If
    fichier = Dir 'fichier suivant
Wend
F.Columns.AutoFit 'ajuste les largeurs
With F.UsedRange: End With 'actualise les barres de défilement
End Sub

Voici ce que je voudrais importer :
1 - feuille Données
de B2 à Z dernière cellule NON vide
Noms des fichiers
isitelFacturation Anais
isitelFacturation Charlotte
isitelFacturation Imen
isitelFacturation Sara
isitelFacturation Sonda
isitelFacturation Stephanie

2 - feuille RendezVous
de J4 à Z dernière cellule NON vide
isitelImmobRdV AnaisNF
isitelImmobRdV CharlotteNF
isitelImmobRdV ImenNF
isitelImmobRdV SaraNF
isitelImmobRdV SondaNF
isitelImmobRdV StephanieNF

En cas, je joins le classeur de Gérard
Si vous pouvez m'aider (ou Gérard), ça m'arrangerait super bien :)
Je souhaiterais que les importations soient positionnées à partir de la ligne 2 et qu'elles s'ajoutent ensuite par classeur à partir de la 1ère ligne vide.
Un grand merci :)
Amicalement,
lionel,
 

Pièces jointes

  • Consolidation(2).xlsm
    66.5 KB · Affichages: 28

job75

XLDnaute Barbatruc
Merci pour les fichiers, je verrai ça demain.

D'ores et déjà je te signale que la consolidation par formules de liaison n'est pas la meilleure solution.

En effet il vaut mieux copier les feuilles avec les formats, donc ouvrir chaque fichier.
 

job75

XLDnaute Barbatruc
Bonjour Lionel, le forum,
Je n'ai pas besoin des formats juste des valeurs et j'aurais préféré ne pas à avoir à ouvrir les fichiers.
Alors place tous le fichiers dans le même dossier (le bureau) et clique sur les boutons Consolider.

Il y a une macro Consolider dans chacune des 2 feuilles.

A+
 

Pièces jointes

  • Consolidation(3).xlsm
    70.2 KB · Affichages: 10
  • isitelFacturation Charlotte.xlsm
    104.9 KB · Affichages: 12
  • isitelImmobRdV CharlotteNF.xlsm
    163.8 KB · Affichages: 9

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
290 833
Messages
1 910 790
Membres
176 869
dernier inscrit
veusavoir
Haut Bas