Glisser formule à répeter toutes les 3 lignes

Bonjour,

J'espère être claire.

J'ai la formule suivante en ligne 1 de la feuille 'recap' :

en ligne 1 ='Liste'!B1 (faisant référence à la cellule B1 de la feuille 'liste")

en ligne 2 = 'Liste'!B1

en ligne 3 = 'Liste'!B1

en ligne 4, je souhaiterai avoir la cellule 'Liste'B2 (faisant référence à la cellule B2 de la feuille 'liste")

en ligne 5 = 'Liste'!B2

en ligne 6 = 'Liste'!B2

en ligne 7, je souhaiterai avoir la cellule 'Liste'B3 (faisant référence à la cellule B3 de la feuille 'liste")

en ligne 8 = 'Liste'!B3

en ligne 9 = 'Liste'!B3

ainsi de suite, mais en faisant un simple glisser, les formules ne suivent pas.

j'ai essayé 'Liste'B1+1 afin d'obtenir 'Liste'B2 ça ne fonctionne pas

Merci encore pour votre aide,

Zerife

Bonjour @ tous,

avec cette formule :

=INDIRECT("Liste!B"&ENT((LIGNES($1:1)-1)/3+1))

@ tirer vers le bas

Cordialement

Merci Rachid,

Bon finalement, je suis partie sur macro vba pour laquelle j'ai besoin de conseil.

1- Dans la macro "concatene_EV" je n'arrive pas à faire de copier / valeur strict.

2- Aussi, dans cette macro, il est dit de lire les lignes jusqu'à 27 et ensuite de passer à l'ongle suivant.

Comment puis-je obtenir que la macro lise jusqu'à la dernière renseignée dans chacun des onglet ?

3- De plus, je ne sais pas pourquoi la macro ne copie-colle pas les 2 derniers onglets.

Merci beaucoup, je fatigue de chercher dans les forums ....mais assez fière de moi car j'ai un très faible niveau VBA.

Cordialement,

Zérife

Salut Zerife, Salut R@chid,

à tester/adapter

Sub Concatene_EV()
Dim sarray
Dim sh As Worksheet, shimp As Worksheet
Dim DerLigne As Long, DerLignesh As Long

Application.DisplayAlerts = False
Application.ScreenUpdating = False

Sheets.Add.Name = "ImportDV"
Set shimp = Sheets("ImportDV")
sarray = Array("ImportDV", "Base", "REF", "Modele Horaire", "Modele Forfait jour", "Liste des onglets")

    For Each sh In ActiveWorkbook.Worksheets
        If IsError(Application.Match(sh.Name, sarray, 0)) Then
          With sh
            DerLigne = shimp.Cells(.Rows.Count, "A").End(xlUp).Row + 1
            DerLignesh = .Cells(.Rows.Count, "BC").End(xlUp).Row
            .Range("AZ9:BC" & DerLignesh).Copy
            shimp.Cells(DerLigne, 1).PasteSpecial (xlPasteValues)
            shimp.Cells(DerLigne, 1).PasteSpecial (xlPasteFormats)
            Application.CutCopyMode = False
          End With
        End If
    Next sh

    With shimp.Range("A1:D1")
        .HorizontalAlignment = xlCenter
        .MergeCells = False
        .Merge
        .Value = "synthese salarié horaire"
    End With
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Bonne nuit

Bonjour m3ellem1,

Désolée de ne répondre que maintenant, j'ai été prise sur un autre projet de dernière minute.

Me revoilà.

C'est pas mal du tout votre script, mais la macro ne va pas jusqu'au dernier onglet salarié....

pouvez-vous m'aider à la retoucher s'il vous plait ?

Aussi, connaîtriez-vous une formule/script qui permet de repositionner 4 colonnes renseignées initialement en colonne AZ à BC (ces 4 colonnes ont été décalées suite à suppression de colonnes précédentes).

Merci pour votre aide,

Cdl

Zérife

C'est pas mal du tout votre script, mais la macro ne va pas jusqu'au dernier onglet salarié....

pouvez-vous m'aider à la retoucher s'il vous plait ?

Salut Zérife,

je viens de retester et la macro traite toutes les feuilles sauf ("ImportDV", "Base", "REF", "Modele Horaire", "Modele Forfait jour", "Liste des onglets").

Je ne vois pas comment je pourrais t'aider

Merci m3elle1,

C'est top j'ai réessayé et ça fonctionne ! mes colonnes étaient mal positionnées sorry

Pensez-vous qu'il est possible d'améliorer la macro en faisant en sorte que ce ne soit pas toutes les 27 lignes mais à chaque fois que la dernière ligne AZ renseignée de l'onglet "1er personne" est vide, la macro passe à l'onglet suivant "2nd personne".

La fin de la macro colle bien les 2 derniers onglets l'un derrière l'autre sans y mettre les 27 lignes. Est-il possible de le faire pour l'ensemble des onglets ?

J'ai mis le fichier avec l'onglet ImportDV => résultat de cette macro

merci vraiment pour toute votre aide,

Cdl

Zérife

Re,

à tester

Sub Concatene_EVImport()
Dim sarray
Dim sh As Worksheet, shimp As Worksheet
Dim DerLigne As Long, DerLignesh As Long, rngTrouve As Range

Application.DisplayAlerts = False
Application.ScreenUpdating = False

Sheets.Add.Name = "ImportDV"
Set shimp = Sheets("ImportDV")
sarray = Array("ImportDV", "Base", "REF", "Modele Horaire", "Modele Forfait jour", "Liste des onglets")

    For Each sh In ActiveWorkbook.Worksheets
        If IsError(Application.Match(sh.Name, sarray, 0)) Then
          With sh

            DerLigne = shimp.Cells(.Rows.Count, "A").End(xlUp).Row + 1
           Set rngTrouve = .Columns("AZ:AZ").Find("*", After:=.Range("AZ1"), searchdirection:=xlPrevious, LookIn:=xlValues)
           DerLignesh = rngTrouve.Row
            .Range("AZ9:BC" & DerLignesh).Copy
            shimp.Cells(DerLigne, 1).PasteSpecial (xlPasteValues)
            shimp.Cells(DerLigne, 1).PasteSpecial (xlPasteFormats)
            Application.CutCopyMode = False
          End With
        End If
    Next sh

    With shimp.Range("A1:D1")
        .HorizontalAlignment = xlCenter
        .MergeCells = False
        .Merge
        .Value = "synthese salarié horaire"
    End With
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Bonne nuit

Bonjour m3ellem1,

Désolée de te déranger de nouveau sur le sujet.

La macro bloque sur la ligne :

DerLignesh = rngTrouve.Row

erreur d’exécution 91 "variable de bloc With non définie"

merci encore pour ton aide,

Cdl

Zérife

Je viens de retester et chez moi ca fonctionne sans problème.

Sorry

Rechercher des sujets similaires à "glisser formule repeter toutes lignes"