Microsoft 365 pour inverser une colonne, ou tableau haut et bas sans trier

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

miroma

XLDnaute Nouveau
bonjour,
c'est une demande un peut spéciale ci joint un classeur avec des explications
merci de votre réponse,
mais ça va etre compliqué !!! pour moi ! de me faire comprendre !
 

Pièces jointes

Bonsoir Miroma,
Pas sur d'avoir tout compris.
Alors juste un essai en PJ, je n'inverse que la partie "utile" du tableau. Pour cela je recherche où se trouve la limite non vide de ce tableau. Avec
VB:
Sub Inverser2()
    tablo = Range("B6").CurrentRegion
    ReDim tabloR(1 To UBound(tablo, 1), 1 To UBound(tablo, 2))
    For imax = UBound(tablo, 1) To 1 Step -1
        If tablo(imax, 1) <> 0 And tablo(imax, 2) <> 0 Then Exit For
    Next imax   ' Quand on sort imax donne le dernier indice de tablo non vide.
    For i = 1 To imax
        For j = 1 To 2
            tabloR(imax + 1 - i, j) = tablo(i, j)
        Next j
    Next i
    Range("e1").CurrentRegion.ClearContents
    Range("e2").Resize(UBound(tablo, 1), UBound(tablo, 2)) = tabloR
End Sub
 

Pièces jointes

Bonsoir Miroma,
Pas sur d'avoir tout compris.
Alors juste un essai en PJ, je n'inverse que la partie "utile" du tableau. Pour cela je recherche où se trouve la limite non vide de ce tableau. Avec
VB:
Sub Inverser2()
    tablo = Range("B6").CurrentRegion
    ReDim tabloR(1 To UBound(tablo, 1), 1 To UBound(tablo, 2))
    For imax = UBound(tablo, 1) To 1 Step -1
        If tablo(imax, 1) <> 0 And tablo(imax, 2) <> 0 Then Exit For
    Next imax   ' Quand on sort imax donne le dernier indice de tablo non vide.
    For i = 1 To imax
        For j = 1 To 2
            tabloR(imax + 1 - i, j) = tablo(i, j)
        Next j
    Next i
    Range("e1").CurrentRegion.ClearContents
    Range("e2").Resize(UBound(tablo, 1), UBound(tablo, 2)) = tabloR
End Sub
 
Bonjour,
j'ai du faire un truc qui faut pas !!!!!
😂😂😂
Ya surtout plein de trucs que vous auriez du faire !

A commencer par expliquer ce que vous vouliez faire, votre code à plein de nom de colonnes et tout se mélange. J'ai donc supposée que la matrice "témoin" est en BJ, et la matrice triée en BM.
En PJ :
Matrice copiée BJ:BM
Matrice triée en BC:BF

A noter que la matrice "témoin" est là juste pour l'exemple, dans le vrai fichier cette partie de code n'a plus raison d'être.
 

Pièces jointes

Bonjour,

A partir du fichier de votre post 1 voici deux possibilités, par requête power query (1er tableau) et une par formule :
=SIERREUR(INDEX(B2:C36;AGREGAT(15;6;LIGNE($1:35)/(B2:B36>0);LIGNE($1:35));COLONNE($A:$B));0)

Si l'une ou l'autre des méthodes vous intéresse, elles sont adaptables.

Cordialement
 

Pièces jointes

Re, bonjour Hasco,
Une nouvelle PJ nettoyée pour éviter de vous emmêler les pinceaux.
En Feuil1 ne figure que les données que vous devez avoir dans votre vrai fichier.
( un autre bouton permet de copier les données pour le test )
 

Pièces jointes

Pourquoi ne pas avoir réutiliser ma dernière PJ ?

Votre code est faux car vous commencez par :
VB:
[BC3:BF100] = [bj3:bm100].Value
Or votre première données est en BJ2
et vous rangez à la fin avec :
Code:
Range("BC3").Resize(UBound(tablo, 1), UBound(tablo, 2)) = tabloR
BC3 au lieu de BC2.
Tout dépends où commencent vos données importées, BJ2 ou BJ3 ?
 
Re, bonjour Hasco,
Une nouvelle PJ nettoyée pour éviter de vous emmêler les pinceaux.
En Feuil1 ne figure que les données que vous devez avoir dans votre vrai fichier.
( un autre bouton permet de copier les données pour le test )
voila ce que je télécharge de ma banque (j'ai modifié l'intérieure des cellules )
et c'est en bc1 que ça cloche la ligne 2
 

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
10
Affichages
511
Réponses
6
Affichages
494
Réponses
10
Affichages
557
Retour