Aide sur réalisation d'un programme VBA

Fermé
guillaumesk850 - 22 nov. 2011 à 14:38
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 22 nov. 2011 à 16:43
Bonjour,

J'ai de nombreux petits problemes sur la réalisation d'un programme VBA

Dans ce programme je créer une liste (listeRR1) dans laquelle j'insère des informations (sur un ligne et répartis dans 5 colonnes). Mes informations (dans la premiere colonne) donne un point kilométrique (de la forme 2450 pour 2km450m) et J'aimerais tout simplement ranger ces informations par ordre (du plus petit au plus grand) ... j'ai essayé un tas de choses mais je n'y arrive pas ... Voila ou j'en suis :

If Feuil2.Range("listeRR1").Cells(i, 1) < Feuil2.Range("listeRR1").Cells(i - 1, 1) Then
Feuil2.Range("listeRR1").Cells(i - 1, 1).EntireRow.Insert
'Feuil2.Range("listeRR1").[Cells(i, 1), Cells(i, 5)].Cut
'Feuil2.Range("listeRR1").[Cells(i - 1, 1)].Paste
End If

Explication : si la valeur que je viens de rentrer et plus petite que celle de la ligne au dessus, alors, j'insere une ligne entiere au dessus de la nouvelle valeur et je coupe (puis colle) la nouvelle valeur dans la ligne au dessus ...

SI cela vous semble incompréhensible je peux tenter de vous ré-expliquer ou de vous envoyer par mail mon fichier avec des annotations

Merci d'avance a tous
Bonne journée
Cordialement


A voir également:

1 réponse

chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 1 308
22 nov. 2011 à 14:40
Bonjour,

tu souhaites faire un tri de tes données ?

Passe par l'enregistreur de macro, effectue ton tri à la main, puis vérifie le code donné. Tu pourrais t'en inspirer pour l'ajouter dans une macro personnelle.

Cordialement.
0
guillaumesk850
22 nov. 2011 à 15:47
Oui je cherche à faire un tri ...
j'ai petit soucis pour sélectionner les cellules de ma liste :

With listeRR1
Range("Cells(i, 1):Cells(i, 5)").Select

qu'est ce qui n'est pas correct ?
Merci
0
chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 1 308
22 nov. 2011 à 15:48
Bonjour,

il te faut enlever les guillemets, et mettre une virgule à la place des deux points, comme ceci :
Range(Cells(i, 1), Cells(i, 5)).Select
0
guillaumesk850
22 nov. 2011 à 16:03
J'arrive mnt à couper et coller des infos, cependant je doute que le "With listeRR1" fonctionne correctement puisque mes informations se trouve coller en dehors de ma liste ....
sauriez vous comment contourner le probleme ?
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
22 nov. 2011 à 16:43
Bonjour tout le monde,
Excusez l'incruste...
A l'intérieur d'un bloc With End With, il est possible de faire appel à des éléments contenus dans l'objet référencé, mais également à des éléments contenus dans des objets autres.
Pour faire appel ici, aux objets Range contenus dans l'objet WorkSheet référencé, il convient de mettre un point devant range.
Essaye cette procédure dans un nouveau classeur :
Sub test()
Sheets("Feuil1").Select
With Sheets("Feuil2")
    .Range("A1") = "Feuil2"
    Range("A1") = "Feuil1"
End With
End Sub
0