Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2021 Incrémentation

  • Initiateur de la discussion Initiateur de la discussion Sanni
  • 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 !

Sanni

XLDnaute Junior
Bonjour à tous !
J'ai préoccupation sur l'incrémentation sur Excel. La colonne B contient des nombres, je voudrais récupérer successivement ces nombres dans la colonne D tout en laissant 03 lignes vides sur cette colonne D, mais l'ordre de la colonne B doit être respecté sur la colonne de récupération (D). Le fichier en pièce jointe peut aider à comprendre. Si possible avec une formule. Merci
 

Pièces jointes

Solution
Regarde le code ci-dessous: j'ai mis des commentaires==> tu peux donc adapter à ton besoin
VB:
Sub Redistrib()
Dim TabInit() As Variant 'déclaration du tableau des données à traiter
Dim TabFinal() As Variant 'déclaration du tableau de résultat
Dim Pas As Long 'déclaration du pas

    Pas = 4 'on définit le pas à 4
    With Sheets("Feuil1") 'avec la feuille 1
        TabInit = .Range("B3").CurrentRegion.Value 'on met les données dans le tablo
        ReDim TabFinal(1 To Pas * UBound(TabInit, 1), 1 To 1) 'on dimensionne le tableau final
        
        For i = LBound(TabInit, 1) To UBound(TabInit, 1) 'pour chaque ligne du tableau init
            TabFinal((i - 1) * Pas + 1, 1) = TabInit(i, 1) 'on place la donnée à la bonne position dans...
Bonjour Sanni, Vgendron,
Un essai en PJ avec :
VB:
=SI((LIGNE()+9)/4=ENT((LIGNE()+9)/4);INDEX(B:B;(LIGNE()+9)/4);"")
et si les données sont en feuille 2 c'est pareil :
Code:
=SI((LIGNE()+9)/4=ENT((LIGNE()+9)/4);INDEX(Feuil2!B:B;(LIGNE()+9)/4);"")
 

Pièces jointes

Regarde le code ci-dessous: j'ai mis des commentaires==> tu peux donc adapter à ton besoin
VB:
Sub Redistrib()
Dim TabInit() As Variant 'déclaration du tableau des données à traiter
Dim TabFinal() As Variant 'déclaration du tableau de résultat
Dim Pas As Long 'déclaration du pas

    Pas = 4 'on définit le pas à 4
    With Sheets("Feuil1") 'avec la feuille 1
        TabInit = .Range("B3").CurrentRegion.Value 'on met les données dans le tablo
        ReDim TabFinal(1 To Pas * UBound(TabInit, 1), 1 To 1) 'on dimensionne le tableau final
        
        For i = LBound(TabInit, 1) To UBound(TabInit, 1) 'pour chaque ligne du tableau init
            TabFinal((i - 1) * Pas + 1, 1) = TabInit(i, 1) 'on place la donnée à la bonne position dans le tableau final
        Next i
    End With
    
    With Sheets("Feuil2") 'dans la feuille 2
        .Range("A3").Resize(UBound(TabFinal, 1), UBound(TabFinal, 2)) = TabFinal 'on place le tableau de résultat à partir de A3
    End With
End Sub
 
Bonsoir à tous.
J'ai une autre préoccupation, toujours sur le mème sujet.
Je voudrais récupérer les données des colonnes "C", "F" et "G" de la feuille "LISTE ARTICLES" respectivement sur les colonnes "A", "B" et "C" de la feuille "7" tout en sautant 03 lignes avant l'incrémentation. Le fichier en pièce jointe peut aider à comprendre. Merci
 

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
7
Affichages
165
Réponses
3
Affichages
470
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…