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 :
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,
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,