Correction de code

Résolu/Fermé
Sandrine - 11 juil. 2016 à 12:36
 Sandrine - 11 juil. 2016 à 14:27
Bonjour,

Mon code ne fonctionne pas correctement... Je ne comprend pas pourquoi...

Sub CreationSynthese()

' Ecriture de la ligne de titre :
Range("A1") = "COMMERCIAUX"
Range("B1") = "Raison Sociale Client"

' Mise en forme de la ligne de titre :
Range("A1:C1").Interior.Color = 13434879 '(Jaune pâle)
Range("A1:C1").Font.Bold = True

' Copie des données :
DerniereLigne = ActiveSheet.UsedRange.Rows.Count
Sheets("Sarah").Range("A2:B" & DerniereLigne).Copy
Sheets("Feuil1").Range("A2").Select
Sheets("Feuil1").Paste

Sheets("Philippe").Range("A2:B" & DerniereLigne).Copy
Sheets("Feuil1").Range("A" & ActiveSheet.UsedRange.Rows.Count + 1).Select
Sheets("Feuil1").Paste

Sheets("Salwa").Range("A2:B" & DerniereLigne).Copy
Sheets("Feuil1").Range("A" & ActiveSheet.UsedRange.Rows.Count + 1).Select
Sheets("Feuil1").Paste

Sheets("Sandrine").Range("A2:B" & DerniereLigne).Copy
Sheets("Feuil1").Range("A" & ActiveSheet.UsedRange.Rows.Count + 1).Select
Sheets("Feuil1").Paste

End Sub


Merci pour toute aide...

A voir également:

1 réponse

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
11 juil. 2016 à 13:24
Bonjour,

Votre probleme vient du select sur une feuille non active et de puls la variable Derniereligne n'est initialisee que sur une seule feuille

il est possible d'eviter le select, mais la c'est deja pas mal

Sub CreationSynthese()
    ' Ecriture de la ligne de titre :
    With Sheets("Feuil1")
        .Range("A1") = "COMMERCIAUX"
        .Range("B1") = "Raison Sociale Client"
        ' Mise en forme de la ligne de titre :
        .Range("A1:C1").Interior.Color = 13434879 '(Jaune pâle)
        .Range("A1:C1").Font.Bold = True
    End With
    ' Copie des données :
    TOnglets = Array("Sarah", "Philippe", "Salwa", "Sandrine")
    For N = 0 To 3
        With Sheets(TOnglets(N))
            DerniereLigne = .UsedRange.Rows.Count
            .Range("A2:B" & DerniereLigne).Copy
        End With
        With Sheets("Feuil1")
            .Range("A" & .UsedRange.Rows.Count + 1).Select
            .Paste
        End With
    Next N
End Sub
0
Merci beaucoup ;)
0