Synthèse de feuilles Excel

Bonjour le forum

Voici un code pris sur le net qui marche dans le même classeur mais

que j'essai de réutiliser entre deux classeurs en remplaçant this workbooks par Fichier

(qui est un fichier sélectionné)

sans succès.

Je n'ai pas compris la partie du code qui fait que cela ne marche pas dans ce cas précis.

Je vous remercie par avance

Application.ScreenUpdating = False

With Fichier

With Worksheets("Synthese")

.UsedRange.Clear

NewLig = 1

For Each Ws In Fichier.Worksheets

If Ws.Name <> "Synthese" Then

LastLig = Ws.Cells(Ws.Rows.Count, 1).End(xlUp).Row

Deb = IIf(NewLig = 1, 1, 2)

Ws.Rows(Deb & ":" & LastLig).Copy .Range("A" & NewLig)

NewLig = NewLig + LastLig + 1 - Deb

End If

Next Ws

End With

End With

Bonjour,

essaie ceci, après avoir modifié le nom classeur.xls par le nom qui va bien.

Application.ScreenUpdating = False
set wb1=thisworkbook
set fichier=workbooks("classeur.xls")
With wb1.Worksheets("Synthese")
    .UsedRange.Clear
    NewLig = 1
    For Each Ws In Fichier.Worksheets
        If Ws.Name <> "Synthese" Then
            LastLig = Ws.Cells(Ws.Rows.Count, 1).End(xlUp).Row
            Deb = IIf(NewLig = 1, 1, 2)
            Ws.Rows(Deb & ":" & LastLig).Copy .Range("A" & NewLig)
            NewLig = NewLig + LastLig + 1 - Deb
        End If
    Next Ws
End With

Re h2so4

Je te remercie de t’intéresser à mon problème.

J'ai essayé mais cela ne marche pas

A+

bonsoir,

qu'est-ce qui ne marche pas ? as-tu bien modifié l'instruction ?

set fichier=workbooks("classeur.xls")

reçois-tu un message d'erreur ?

heso4

Je te joins deux fichiers dans le même répertoire.

les données sont dans le classeur BAKH2 et proviennent du classeur BAKH1

et la synthèse y est faite.(voir résultat attendu)

Merci encore

15bakh1.zip (11.73 Ko)
28bakh2.zip (9.19 Ko)

bonsoir,

voici

Sub traitement()
Application.ScreenUpdating = False

Set fichier = Workbooks("Bakh2.xls") ' fichier fait référence au classeur ouvert bakh2.xls
With fichier.Worksheets("Synthese") ' 
    .UsedRange.Clear ' on efface le contenu de la feuille synthèse
    NewLig = 1  ' newlig =première ligne où copier les données sur synthèse
    For Each Ws In fichier.Worksheets ' on prend chaque feuille de fichier
        If Ws.Name <> "Synthese" Then ' si la feuille n'est pas synthèse
            LastLig = Ws.Cells(Ws.Rows.Count, 3).End(xlUp).Row 'lastlig = dernière ligne utile sur base de la colonne 3)
            Deb = IIf(NewLig = 1, 1, 2) ' si première copie on prend la ligne titre
            Ws.Rows(Deb & ":" & LastLig).Copy .Range("A" & NewLig) ' on copie les données ligne Deb à ligne Lastlig vers synthèse
            NewLig = NewLig + LastLig + 1 - Deb ' on calcule la nouvelle ligne de synthèse pour recevoir les données suivantes
        End If
    Next Ws
End With
End Sub

Re h2so4

C'est parfait. Chapeau bas

Merci .

Je voudrais juste quelques petits commentaires ( si le temps te le permet bien sûr)

des codes pour me faire bénéficier de ta maestria

A bientôt

Re h2so4

Merci . je clos le post

A+


Re h2so4

Merci . je clos le post

A+

Rechercher des sujets similaires à "synthese feuilles"