Microsoft 365 adapter l'excellent code de Job75

Usine à gaz

XLDnaute Barbatruc
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: 29

Usine à gaz

XLDnaute Barbatruc
Bonjour Gérard, le Forum,
Bon dimanche à toutes et à tous,

@Gérard,
Comme annoncé, j'explique à quoi "Consolidation" m'est très utile :)
pour travailler j'ai plusieurs classeurs :
1 prise des RdVs ("mon usine à gaz") lol - ici sont enregistrés les RdVs pris par mes Commerciales
2 isitelImmobRdV - est alimenté par l'import des Rdvs pris
3 isitelFacturation - est alimenté par import "suivis des Rdvs" pour les rdVs faits
L'utilité du classeur "Consolidation"
Nos Clts achètent des packs de Rdvs à consommer
J'ai besoin de connaître en permanence la situation des packs pour demander un renouvellement si besoin, pour cela :
le classeur "consolidation"
va chercher dans les classeurs "isitelFacturation" les Rdvs - achetés et déjà facturés
va chercher dans les classeurs "isitelImmobRdV" les Rdvs - Confirmés et à confirmer NON passés encore en "isitelFacturation"
---------------------------------------------------------------------------------------------------------
Je profite de ce poste pour demander une confirmation :
dans le classeur "Consolidation" apparaissent feuille "RendezVous" - tous les RdVs" faits ou à faires pour tous les Clients

Mais pour certains Clients plusieurs RdVs sont à prendre en compte et je dois dans ce cas afficher le nombre total des RdVs par Clients
Classeur test joint :
J'ai fait une formule pour additionner les rdvs par Clients - en feuille détail : =SI(C1<>C2;1;S1+1)
ensuite, je fait une recherche qui semble fonctionner - en feuille Recap : =RECHERCHE(C2;Clt)

ça semble fonctionner car, apparemment la recherche valide la dernière ligne d'un même Client.
Voudriez-vous me confirmer si c'est bon et/ou existe-t-il une formule plus appropriée ?

Un grand merci par avance :)
lionel,
 

Pièces jointes

  • Test.xlsm
    32.9 KB · Affichages: 13
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
314 645
Messages
2 111 536
Membres
111 184
dernier inscrit
amiko