Mettre en ordre des colonnes avecVBA [Résolu]

azazelone 5 Messages postés jeudi 17 avril 2008Date d'inscription 20 décembre 2009 Dernière intervention - 17 avril 2008 à 12:14 - Dernière réponse : cs_MPi 3875 Messages postés mardi 19 mars 2002Date d'inscription 17 août 2018 Dernière intervention
- 20 déc. 2009 à 13:33
Bonjour,

Je travaille sur ma première macro mais j'ai un gros problèmes je dois mettre des nombre de 1 à 312 dans l'ordre avec les colonnes annexes qui contiennent les autres informations de ses nombres pour cela je vais chercher dans un fichier TXT mais les nombre viennent exactement comme dans l'ordre du fichiers ainsi je suis obligé quand je veux faire les calculs de commencé à rechercher la ligne du nombre(1 à 312)  ainsi que toutes les informations de cette ligne pour faire les calculs se qui me prends beaucoup de temps et je voudrais que excel me mette ça bien ordonnée ainsi je dois pas changé les formules à chaque fois que la colonnes des nb de 1 à 312 changede position, ben euhhh....j'espère que c'est clair  merci!!! 

Azazelone
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
cs_faucheuse 309 Messages postés jeudi 10 janvier 2008Date d'inscription 27 octobre 2011 Dernière intervention - 17 avril 2008 à 13:49
3
Merci
Nan pas tres clair ^^, faut plus d'espaces.

Tu veux ranger dans l'ordre des numéros de 1 à 312 ou c'est autre chose?

Merci cs_faucheuse 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 73 internautes ce mois-ci

Commenter la réponse de cs_faucheuse
Meilleure réponse
cs_MPi 3875 Messages postés mardi 19 mars 2002Date d'inscription 17 août 2018 Dernière intervention - 18 avril 2008 à 12:18
3
Merci
Si tu utilises l'enregistreur de macro, ça va te générer un code que tu pourras étudier, modifier et réutiliser.

Démarre l'enregistreur, sélectionne ta plage et utilise le tri (menu Données / Trier)

En espérant avoir bien compris le problème...(?)

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI

Merci cs_MPi 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 73 internautes ce mois-ci

Commenter la réponse de cs_MPi
Meilleure réponse
Acta_6 29 Messages postés mercredi 25 avril 2007Date d'inscription 22 avril 2008 Dernière intervention - 18 avril 2008 à 13:13
3
Merci
Bonjour azazelone (enfin, bonjour tout le monde ;) )
Si j'ai bien compris tu veux réordonner 1 colonne en passant par VBA sans perdre le lien avec les colonnes adjacentes.
Si, comme le préconise MPi, tu utilises l'enregistreur de macro, tu trouveras ta solution.
Si t'as un souci avec l'enregistreur, la fonction a utiliser est le Sort
Tu lui spécifies la plage a trier, ton critère, l'ordre et tout marche très bien.

Bon courage.

Merci Acta_6 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 73 internautes ce mois-ci

Commenter la réponse de Acta_6
bigfish_le vrai 1839 Messages postés vendredi 13 mai 2005Date d'inscription 20 novembre 2013 Dernière intervention - 17 avril 2008 à 17:26
0
Merci
Salut,

il existe une fonction de trie dans excel pourquoi vouloir utiliser VBA ?

A+
Commenter la réponse de bigfish_le vrai
cs_MPi 3875 Messages postés mardi 19 mars 2002Date d'inscription 17 août 2018 Dernière intervention - 18 avril 2008 à 00:20
0
Merci
Il faudrait que tu expliques aussi comment tu récupères les données du fichier .txt
et ce qu'il contient...

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
Commenter la réponse de cs_MPi
azazelone 5 Messages postés jeudi 17 avril 2008Date d'inscription 20 décembre 2009 Dernière intervention - 18 avril 2008 à 11:16
0
Merci
Resalut et merci, je suis désolé de ne pas être très clair d'ailleurs le français n'est pas mon fort mais bon je vais essayé à nouveau. Je dois aller chercher des données sur deux PC contenant les informations des machines mais qui sont séparées en deux parties exemple dans le SDC1 (nom du premier PC) je vais chercher lescompteurs que je vais nommé meters et que je vais sauvegarder dans une clé USB sous le nom de meters.txt, je dois faire la même chose pour le SDC2 et je sauve dans dans meters1.txt. Les machines sont séparées et non ordonnée dans ses deux fichiers.
Je colle les deux fichier dans une feuille excel et le machines m'apparaissent dans le désordre exemple de 1à 12 ensuite 205 à 208, de 146 à 152 etc.. je dois ordonné cela dans l'ordre directement de 1 à 322 avec les colonnes D,E F e G contenant l'information nécessaire de ses machines pour faire les calculs aussi....j'espère que vous me comprennez mieux maintenant sinon je peus envoyé ma feuille à l'un de vous pour mieux comprendre...merci encore

Azazelone
Commenter la réponse de azazelone
azazelone 5 Messages postés jeudi 17 avril 2008Date d'inscription 20 décembre 2009 Dernière intervention - 20 déc. 2009 à 12:14
0
Merci
Merci c'est ce que j'ai fait voici le code et comment j'allais chercher le fichier en txt. Le probleme c'est que je voudrais pas voir les collages quand il fait les applications est il possible de les suuprimés?

Sub metersinicio()

Workbooks.Open "H:\meters.txt"
Range("D1:O166").Copy
Workbooks("SlotsMachines").Activate
Worksheets("CM").Activate
Range("A6").PasteSpecial (xlPasteValues), Operation:=xlNone, Skipblanks:=False, Transpose:=False
Range("D1:O166").ClearOutline
Range("A6").Select
Workbooks("meters").Close
Worksheets("CMD").Activate
Range("A1").Select

'Abertura pelo os meters SDC2'

Workbooks.Open "H:\meters1.txt"
Range("D1:O140").Copy
Workbooks("SlotsMachines").Activate
Worksheets("CM").Activate
Range("A172").PasteSpecial (xlPasteValues), Operation:=xlNone, Skipblanks:=False, Transpose:=False
Range("D1:O140").ClearOutline
Range("C173").Select
Workbooks("meters1").Close
Worksheets("CMD").Activate
Range("A1").Select

Application.Run "metersiniciorrdem"

End Sub

Sub notasinicio()

Workbooks.Open "H:\Bill.txt"
Range("D1:M166").Copy
Workbooks("SlotsMachines").Activate
Worksheets("CN").Activate
Range("A3").PasteSpecial (xlPasteValues), Operation:=xlNone, Skipblanks:=False, Transpose:=False
Range("D1:M166").ClearOutline
Range("A1").Select
Workbooks("bill").Close
Worksheets("CMD").Activate
Range("A1").Select

'Abertura pelo os meters SDC2'

Workbooks.Open "H:\bill1.txt"
Range("D1:M140").Copy
Workbooks("SlotsMachines").Activate
Worksheets("CN").Activate
Range("A169").PasteSpecial (xlPasteValues), Operation:=xlNone, Skipblanks:=False, Transpose:=False
Range("D1:M140").ClearOutline
Range("C173").Select
Workbooks("bill1").Close
Worksheets("CMD").Activate
Range("A1").Select

Application.Run "billiniciordem"

End Sub

Sub titoinicio()

Workbooks.Open "H:\tito.txt"
Range("D1:K166").Copy
Workbooks("SlotsMachines").Activate
Worksheets("CT").Activate
Range("A5").PasteSpecial (xlPasteValues), Operation:=xlNone, Skipblanks:=False, Transpose:=False
Range("D1:K166").ClearOutline
Range("A171").Select
Workbooks("tito").Close
Worksheets("CMD").Activate
Range("A1").Select

'Abertura pelo os meters SDC2'

Workbooks.Open "H:\tito1.txt"
Range("D1:K140").Copy
Workbooks("SlotsMachines").Activate
Worksheets("CT").Activate
Range("A171").PasteSpecial (xlPasteValues), Operation:=xlNone, Skipblanks:=False, Transpose:=False
Range("D1:K140").ClearOutline
Range("C173").Select
Workbooks("tito1").Close
Worksheets("CMD").Activate
Range("A1").Select

Application.Run "titoiniciordem"

End Sub
la partie du rangement j'ai utilise l'enregistrment de macro de excel
Sub metersiniciorrdem()
'
' metersiniciorrdem Macro
'

'
Sheets("CM").Select
Range("A6:L311").Select
ActiveWorkbook.Worksheets("CM").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("CM").Sort.SortFields.Add Key:=Range("A6"), SortOn _
:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("CM").Sort
.SetRange Range("A7:L311")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A1").Select
Sheets("CMD").Select
Range("V1").Select
End Sub
Sub billiniciordem()
'
' billiniciordem Macro
'

'
Sheets("CN").Select
Range("A3:J308").Select
ActiveWorkbook.Worksheets("CN").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("CN").Sort.SortFields.Add Key:=Range("A3"), SortOn _
:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("CN").Sort
.SetRange Range("A3:J308")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A1:J1").Select
Sheets("CMD").Select
Range("V1").Select
End Sub
Sub titoiniciordem()
'
' titoiniciordem Macro
'

'
Sheets("CT").Select
Range("A5:H310").Select
ActiveWorkbook.Worksheets("CT").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("CT").Sort.SortFields.Add Key:=Range("A5"), SortOn _
:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("CT").Sort
.SetRange Range("A5:H310")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A1").Select
Sheets("CMD").Select
Range("V1").Select
End Sub
Sub incativasordem()
'
' incativasordem Macro
'

'
Sheets("CPL").Select
Range("B4:I309").Select
ActiveWorkbook.Worksheets("CPL").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("CPL").Sort.SortFields.Add Key:=Range("B4"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("CPL").Sort
.SetRange Range("B4:I309")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveWindow.SmallScroll Down:=-15
Range("A1").Select
Sheets("CMD").Select
Range("V1").Select
End Sub

Azazelone
Commenter la réponse de azazelone
cs_MPi 3875 Messages postés mardi 19 mars 2002Date d'inscription 17 août 2018 Dernière intervention - 20 déc. 2009 à 13:33
0
Merci
Qu'est-ce que tu entends par "ne pas voir les collages" ?
La surbrillance (genre de pointillés) ?

Si oui, utilise
Application.CutCopyMode = False

Sinon, il faudrait que tu expliques un peu plus ...

MPi²Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
Commenter la réponse de cs_MPi

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.