XL 2021 Propagation discontinue

  • Initiateur de la discussion Initiateur de la discussion MATLEA
  • Date de début Date de début

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 !

MATLEA

XLDnaute Occasionnel
Bonjour chers experts,
est-il possible de propager colonnes ou lignes de façon discontinue. Par exemple au lieu d'obtenir à partir de A1: A1, A2, A3 etc obtenir A1, A3, A5 etc Voir fichier joint.
Merci pour vos avis et solutions.
 

Pièces jointes

Comment transposer la formule à d'autres situations sans toto et à d'autres positions que A1?
Voyez le fichier joint et cette macro :
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim pas, dercel As Range, P As Range
If IsEmpty(Target(1)) Then Exit Sub
Cancel = True
pas = 2 'à adapter
Set dercel = Target(1).End(xlDown)
If IsEmpty(dercel(0)) Then Set dercel = Target(1)
Set P = Range(Target(1), dercel)
With P(1, 2).Resize(Application.Ceiling(P.Count / pas, 1))
    .Formula = "=OFFSET(" & P(1).Address & "," & pas & "*(ROW()-" & P(1).Row & "),)"
    .Value = .Value 'facultatif, supprime les formules
End With
End Sub
Double-clic sur la 1ère cellule d'une liste.
 

Pièces jointes

Dernière édition:
Voyez le fichier joint et cette macro :
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim pas, dercel As Range, P As Range
If IsEmpty(Target(1)) Then Exit Sub
Cancel = True
pas = 2 'à adapter
Set dercel = Target(1).End(xlDown)
If IsEmpty(dercel(0)) Then Set dercel = Target(1)
Set P = Range(Target(1), dercel)
With P(1, 2).Resize(Application.Max(1, Int(P.Count / pas)))
    .Formula = "=OFFSET(" & P(1).Address & ",2*(ROW()-" & P(1).Row & "),)"
    .Value = .Value 'facultatif, supprime les formules
End With
End Sub
Double-clic sur la 1ère cellule d'une liste.
Merci job 75, ca marche très bien dans votre fichier.
Pouvez-vous me dire comment intégrer la macro dans mon fichier de travail?

Merci
 
Bonjour MATLEA, le forum,

J'ai corrigé la macro du post #17 avec Application.Ceiling, [Edit] j'ai aussi intégré la variable pas dans la formule.
Pouvez-vous me dire comment intégrer la macro dans mon fichier de travail?
Fichier de travail ? Le dernier fichier que vous avez fourni est celui du post #13.

Il suffit de le convertir en .xlsm et coller la macro dans le code de la feuille.

A+
 

Pièces jointes

Dernière édition:
Merci ca fonctionne
Mouais... Celle-ci fonctionne mieux :

=FILTRE(C17:C33;SI(EST.PAIR(LIGNE(C17));EST.PAIR(LIGNE(C17:C33));EST.IMPAIR(LIGNE(C17:C33))))

et si LET fonctionne avec Excel 2021 :

=LET(tbl;B4:B20;l;LIGNE(tbl);FILTRE(tbl;SI(EST.PAIR(PRENDRE(l;1));EST.PAIR(l);EST.IMPAIR(l))))

Oups, PRENDRE n'est pas disponible avec Excel 2021 donc :

=LET(tbl;B4:B20;l;LIGNE(tbl);FILTRE(tbl;SI(EST.PAIR(LIGNE(DECALER(tbl;;;1)));EST.PAIR(l);EST.IMPAIR(l))))

Ce qui permet de ne définir la plage qu'une seule fois.

Daniel
 
Dernière édition:
- 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
11
Affichages
248
Réponses
7
Affichages
720
Retour