XL 2016 Recopier une formule une cellule sur deux sans saut de ligne dans les données sources

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Maria25

XLDnaute Nouveau
Bonjour,

J'ai des données sur une feuille 1, je souhaiterai copier ces données sur une autre feuille mais une ligne sur deux.
En copiant/collant ma formule dans la nouvelle feuille, il y a automatiquement un saut de ligne: on passe de A1 à A3 et ainsi de suite mais j'ai besoin de l'ensemble des lignes.

Merci d'avance
 
Bonjour Maria, et bienvenue sur XLD,
Un petit fichier test aurait simplifié les choses. 🙂
Un essai en PJ avec ce que j'ai compris, avec cette formule :
VB:
=SI(EST.PAIR(LIGNE());INDEX(Feuil1!A:A;1+ENT(LIGNE()/2));"")
 

Pièces jointes

Bonjour @Maria25 🙂, bienvevue sur XLD ☺️,

Essayez la formule en A1 de la feuille Feuil2 puis la recopier suffisamment vers le bas :
VB:
=SI(EST.PAIR(LIGNE());"";DECALER(Feuil1!A$1;-1+(1+LIGNE())/2;0))

ou pour ne pas inscrire de zéro quand la cellule de départ est vide (colonne C) :
Code:
=SI(EST.PAIR(LIGNE());"";SI(DECALER(Feuil1!A$1;-1+(1+LIGNE())/2;0)="";"";DECALER(Feuil1!A$1;-1+(1+LIGNE())/2;0)))
 

Pièces jointes

Re,

Par macro. La colonne A de la feuille "Feuil2" se met automatiquement à jour quand on sélectionne la feuille "Feuil2". Le code VBA est dans le module de la feuille "Feuil2" :
VB:
Private Sub Worksheet_Activate()
Dim n&, t, i&
   With Sheets("Feuil1")
      If .FilterMode Then .ShowAllData
      n = .Cells(.Rows.Count, "a").End(xlUp).Row
      t = .Range("a1:a" & n)
   End With
   ReDim r(1 To 2 * n, 1 To 1)
   For i = 1 To UBound(t): r(2 * i - 1, 1) = t(i, 1): Next
   Sheets("Feuil2").Columns(1).Clear
   Sheets("Feuil2").Range("a1").Resize(UBound(r)) = r
End Sub
 

Pièces jointes

Bonjour @Maria25 🙂, bienvevue sur XLD ☺️,

Essayez la formule en A1 de la feuille Feuil2 puis la recopier suffisamment vers le bas :
VB:
=SI(EST.PAIR(LIGNE());"";DECALER(Feuil1!A$1;-1+(1+LIGNE())/2;0))

ou pour ne pas inscrire de zéro quand la cellule de départ est vide (colonne C) :
Code:
=SI(EST.PAIR(LIGNE());"";SI(DECALER(Feuil1!A$1;-1+(1+LIGNE())/2;0)="";"";DECALER(Feuil1!A$1;-1+(1+LIGNE())/2;0)))
Bonjour Mapomme,

Merci beaucoup pour cette réponse, ça semble bien fonctionné.

Je me retrouve maintenant un peu bloqué avec la colonne J dans l'onglet préparation. Je ne peux pas utiliser la formule tel quel car en fonction de si le montant une sortie ou une entrée je dois mettre un moins (mettre un moins pour une sortie), j'avais commencé à faire des onglets intermédiaire, mais existe-t-il un moyen plus simple?

Encore merci
Maria
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
485
Retour