- Visual Basic / VB.NET : Inverser l'ordre d'une colone dans excel - CodeS SourceS
- Glisser/déplacer les colonnes pour inverser leur ordre dans un msflexgd
- Ordre alphabétique sur + colonnes en vba - excel
- Filtre sur plusieurs colonnes ( VBA excel 2010 )
- Faire une boucle de traitement sur des colonnes sous Excel VBA
25 mars 2009 à 17:44
Ajouter une colonne à dte ou à gauche du tableau à inverser.
Dans cette colonne, numéroter de 1 à 0 (en tirant avec Ctrl sur le coin inf droit de la cellule où on a marqué 1.
Sélectionner tout le tableau y compris la colonne de numérotation.
Données .. trier .. donner la lettre de cette colonne comme critère de tri et choisir ordre inverse.
Voilà, ya plus qu'à effacer la colonne de numérotation.
20 juil. 2007 à 10:36
(j'aime bien ton pseudo) :D
@++
20 juil. 2007 à 10:31
J'ai essayé vos trois codes.
Pour ma part les 3 fonctionnent très bien dans ce que je cherchais à faire.
Merci à vous 3.
J'ai gardé le code de mortalino car c'est celui qui met le moins de temps (c'est presque invisible la différence, mais quand même un chouilla).
Merci à lui.
Bonne journée à tous
25 sept. 2006 à 16:57
Personnellement, je n'est pas testé vos 2 codes mais je vous propose le mien qui permet d'inverser le contenu de toutes les colonnes d'une sélection? Je l'utilise souvent et je voudrais le partager avec vous. Notez que j'ai commenté toutes les lignes pour expliquer leur rôle.
Biensûr vos commentaires et questions sont les bienvenus.
Voici le code :
Option Base 1 ' On précise que les indices des tableaux commencent à partir de 1!
Option Explicit ' Toutes les variables doivent être déclarées avant d'être utilisées!
Sub InverteCellsInColumn()
Application.ScreenUpdating = False ' On désactive l'actualisation de l'affichage pour aller plus vite!
Dim MyData() As Variant ' Tableau pour contenir la sélection
Dim tampon As Variant ' Variable tampon
Dim nbLignes As Long, nbColonnes As Long ' Nombre de lignes et de colonnes dans la sélection
Dim i As Long, j As Long
On Error Resume Next ' Permet d'éviter les boîtes de dialogues de VBA en cas d'erreur
nbLignes = Selection.Rows.Count ' On récupère le nombre de lignes dans la sélection
nbColonnes = Selection.Columns.Count ' On récupère le nombre de colonnes dans la sélection
ReDim MyData(nbLignes, nbColonnes) ' On donne les bonnes dimensions à notre tableau de données
MyData = Selection.Value ' On transfert les données sélectionnées vers le tableau
For i = 1 To Fix(nbLignes / 2) ' On parcourt la moitié superieure de la sélection ligne par ligne
For j = 1 To nbColonnes ' On boucle sur les colonnes
tampon = MyData(i, j) ' On permute
MyData(i, j) = MyData(nbLignes - i + 1, j) ' de part et d'autre
MyData(nbLignes - i + 1, j) = tampon ' du centre (pivot) de la sélection
Next j
Next i
Selection.Value = MyData ' On transfert le contenu du tableau vers la sélection
Application.ScreenUpdating = True ' On remet l'affichage en place!
End Sub
22 sept. 2006 à 16:27
Sub test()
Dim PLV As Long, lCol As Long, i As Long, lCounter As Long
Dim sDonnees() As String
lCol = Selection.Column ' ** remplacer Columns par Selection
PLV = Columns(lCol).Find("", Cells(1, lCol), , , xlByRows, xlNext).Row - 1
lCounter = 0
ReDim sDonnees(PLV - 1)
For i = PLV To 1 Step -1
sDonnees(lCounter) = Cells(i, lCol).Value
lCounter = lCounter + 1
Next i
For i = 1 To PLV
Cells(i, lCol).Value = sDonnees(i - 1)
Next i
End Sub
Par contre j'ai toujours l'erreur sur la même ligne de ton code, dès que j'aurai un peu de temps, je verrai pour te la corriger.
(peut-être ce soir).
++