Copier 1 ligne issue de plusieurs onglet vers un seul onglet

Bonjour tout le monde,

je galère en ce moment avec un bout de code macro.

J'ai un classeur qui est composé de plusieurs onglets dont le nombre varie. J'ai toutefois 3 onglets qui seront toujours présents : Moyennes, Synhtèse, Feuille notation.

Je souhaiterais pouvoir recopier l'une en dessous de l'autre sur la feuille "synthèse" la ligne issue de tous les onglets autres que les 3 précédemment cités.

Il s'agit d'un simple copier/coller mais automatiser pour un nombre d'onglet variable.

Je vous joins mon fichier pour plus de détail.

La ligne en jaune de chaque onglet en rouge doit se reporter sur la feuille syntèse.

J'ai essayé diverses instructions mais sans succès.

Merci de votre aide.

Fred

Bonjour,

Sub ValidationFinale()
    Dim ws As Worksheet, plg$, n%
    plg = "J3:AB3"
    With ActiveSheet
        n = .Cells(.Rows.Count, 1).End(xlUp).Row
        If n < 3 Then n = 3
        Application.ScreenUpdating = False
        For Each ws In ThisWorkbook.Worksheets
            Select Case ws.Name
                Case "Moyennes", "Synthèse", "Feuille notation"
                Case Else
                    n = n + 1
                    .Cells(n, 1).Resize(, 19).Value = ws.Range(plg).Value
            End Select
        Next ws
    End With
End Sub

Cordialement.

Super, c'est exactement ce que je voulais.

Est-ce qu'il est possible d'avoir des explications sur certains morceaux du code svp.

plg$, n%

.Cells(n, 1).Resize(, 19).Value

Merci d'avance

    Sub ValidationFinale()
        Dim ws As Worksheet, plg$, n%
        plg = "J3:AB3"
        With ActiveSheet
            n = .Cells(.Rows.Count, 1).End(xlUp).Row
            If n < 3 Then n = 3
           Application.ScreenUpdating = False
            For Each ws In ThisWorkbook.Worksheets
                Select Case ws.Name
                    Case "Moyennes", "Synthèse", "Feuille notation"
                    Case Else
                        n = n + 1
                        .Cells(n, 1).Resize(, 19).Value = ws.Range(plg).Value
                End Select
            Next ws
        End With
    End Sub

plg$ équivaut à : plg As String.

n% équivaut à : n As Integer.

$ et % sont ce que l'on désigne sous le terme de caractères de déclaration de type.

D'autres sont également utilisables : &, !, #, @ pour Long, Single, Double, Currency.

Cela permet de raccourcir les déclarations...

.Cells(n, 1).Resize(, 19).Value

La cellule de ligne n en A (colonne 1) est redimensionnée sur 19 colonnes.

Soit si n=4, la plage définie par l'expression est : A4:S4 (dont on définit la valeur, par la valeur d'une plage de même taille, ou on peut le faire par un tableau de même taille également).

Cordialement.

Merci pour les précisions, ça va m'aider pour la suite de mes macros.

Fred

Rechercher des sujets similaires à "copier ligne issue onglet seul"