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