Posez votre question Signaler

Excel macro vba aidez moi!!!!! [Résolu]

japlo 42Messages postés 24 janvier 2008Date d'inscription 15 février 2011Dernière intervention - Dernière réponse le 8 févr. 2008 à 22:23
Bonjour,
Dites moi ce qui cloche dans cette macro qui me sert un trier une liste de personne.
Sub newperso()
'
' newperso Macro
' Macro enregistrée le 06/02/2008 par jy
'
'
ActiveWindow.SmallScroll Down:=-9
Range("A1:A76").Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
ActiveWindow.SmallScroll Down:=-9
Range("B17").Select
End Sub
Lire la suite 

Excel macro vba aidez moi »

16 réponses
Réponse
+1
moins plus
Ok tout va bien alors pour le moment...
C'est le principal
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

et si tu nous disais toi ce qui ne va pas ?
Ajouter un commentaire
Réponse
+0
moins plus
Deja merci de me répondre,ensuite la macro ne fait pas son effet j'entend par la qu'il ne se passe rien.

j'ai affecté cette macro à un bouton mais apres il ne se passe rien du tout, ma liste n'est pas triée par ordre alphabétique, donc je ne comprend pas.
Ajouter un commentaire
Réponse
+0
moins plus
A-priori c'est une macro que tu as enregistré (et tu peux oter les ActiveWindow.SmallScroll Down qui ne servent à rien) et il n'y a aucune raison qu'elle ne fonctionne plus.
Mets un point d'arret au début de ta macro pour etre sûr qu'elle est bien appelée
Ajouter un commentaire
Réponse
+0
moins plus
Voici ce qui reste de ma macro mais cela ne marche toujours pas.

Sub newperso()
'
' newperso Macro
' Macro enregistrée le 06/02/2008 par jy
'
Range("A1:A76").Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
ActiveWindow.SmallScroll Down:=-9
Range("B17").Select
End Sub

Ai je bien supprimé ce qu'il fallait?
Qu'appelles tu un point d'arret?
Par contre ma liste corespond à une selection de cellule que j'ai nommé je ne sais pas si cela pose probleme ou pas.
Ajouter un commentaire
Réponse
+0
moins plus
oui, tu as bien enlevé ce quii ne sert à rien
Tu mets un pioint d'arret en cliquant dans la marge grise d'une ligne de code. La ligne devient marron.
Lorsque la macro est appellée elle s'arrete sur un point d'arret et te permet de voir
- déjà si l'appel se fait bien (à mon avis non pour toi
- et d'executer les lignes pas à pas avec F8 pour débuguer. Et tu peux relancer le traitement normal par F5

Où est ecrite ta macro ? Dans une feuille ? Si oui tes données doivent être dans cette feuille.
Si tu veux qu'elle soit valable pour toutes les feuilles (voire même d'un autre classeur) il faut la mettre dans un module (clic droit sur ton projet (fenetre à gauche) et 'inserer... / module'
Si ce n'est pas ça contrôle le parametrage de ton bouton et lance là sans l'utiliser (le bouton) avec un point d'arret pour voir ce qu'elle te sélectionne à la place de tes données

eric
Ajouter un commentaire
Réponse
+0
moins plus
Bon pour le point d'arret c'est ok la ligne se met bien en marron avec un point de la meme couleur sur le coté.
Une fois lancée la macro s'arrete bien sur le point d'arret, avec la toouche f8 je me déplace bien de ligne en ligne.

La macro est placée dans un module car le bouton et la liste ne sont pas sur le meme onglet.
Apres j'ai bien du mal à suivre.
Ajouter un commentaire
Réponse
+0
moins plus
Quelle version d'XL ?

Je vois à peut prêt, mais que doit faire ta macro exactement ?
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

En pas à pas tu executes Range("A1:A76").Select et tu regardes dans excel quelle est la zone selectionnée. Normalement ça doit être tes données à trier.
Si c'est bien ça impossible(?) que la ligne suivante ne trie pas.
Et que cherches tu à trier ? Des nombres ?
Si ce sont des chaines toto10 est plus petit que toto2 !

Si ton pb n'est tjs pas résolu déposes ton fichier sur www.cijoint.fr et colle le lien ici
eric
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,
Quelle version d'XL ? excel 2003
Je vois à peut prêt, mais que doit faire ta macro exactement ? juste trier une liste de noms par ordre informatique

Sinon j'ai l'impression que rien ne s'exécute je ne comprend pas!!!

Voici le lien que tu m'as demandé.
http://www.cijoint.fr/cj200802/cij7348430693839.xls

L'objectifs de cette macro était de mettre un bouton sur un onglet qui m'aurrait inséré une ligne dans une liste de noms et que celle-ci se trie par ordre alphabétique automatiquement.

Pour cela je comptais utiliser cette macro et la lier avec l'autre.

'Sub JYL()
'rep = InputBox("NOM")
'Workbooks("FDG 2008.xls").Worksheets("Ne pas toucher merci").Range("b47").EntireRow.Insert
'Workbooks("FDG 2008.xls").Worksheets("Ne pas toucher merci").Range("b47").Value = rep
'If rep = "" Then Exit Sub
'End Sub

Dites moi ce que vous en penser.
Ajouter un commentaire
Réponse
+0
moins plus
Ta liste est déjà triée donc forcément tu ne vois pas beaucoup de différence entre le avant et le après...
Inverse 2 noms et tu verras qu'elle fonctionne.

eric
Ajouter un commentaire
Réponse
+0
moins plus
Et bien chez moi elle ne fonctionne pas car j'ai inséré une ligne et rentré un nom bidon et toujours aucun résultat.
Ajouter un commentaire
Réponse
+0
moins plus
Alors exécute ta macro en pas à pas
Menu "outils / macro / macros..." et clic sur Pas à pas détaillé
et regarde au fur et à mesure dans la fenetre excel ce qui se passe

eric
Ajouter un commentaire
Réponse
+0
moins plus
Bon je pense avoir trouvé la solution j'ai tout simplement déplacé la liste de personne vers l'onglet1 et à prirori cela marche.
D'apres toi est-ce le probleme que je rencontrai?

Voici ma macro tel quel est aujourd'hui.

Sub trier()
'
' trier Macro
' Macro enregistrée le 08/02/2008 par
'

rep = InputBox("NOM")
Workbooks("FDG 2008.xls").Worksheets("Sommaire").Range("a40").EntireRow.Insert
Workbooks("FDG 2008.xls").Worksheets("Sommaire").Range("a40").Value = rep
If rep = "" Then Exit Sub
Rows("19:91").Select
Selection.EntireRow.Hidden = False
Range("A20:A90").Select
Selection.Sort Key1:=Range("A20"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Rows("20:90").Select
Selection.EntireRow.Hidden = True
Range("D17").Select
End Sub

Merci beaucoup pour ton aide.
jy
Ajouter un commentaire
Réponse
+0
moins plus
Ben si tu nous donnes une macro et que c'est avec une autre que tu essaies. Pas étonnant que l'échange dure si longtemps...

Tu as des trucs illogiques dans ta macro qui font qu'elle ne tournera jamais correctement.
Mais je ne te dirai pas quoi, ce n'est pas moi qui vais aller faire le pas à pas (3ème édition...) sur ton micro !
Juste un indice, sélectionne une autre feuille que Sommaire.
Moi je consière le problème comme résolu

Bonne soirée
eric
Ajouter un commentaire
Réponse
+0
moins plus
La macro fontionne bien pour le moment je n'ai pas de probleme avec l'avenir me diras si des soucis surviennent.
Elle est différantes par rapport au début car la premiere partie fonctionnait bien, mais je ne comprennait pas pour la deuxieme partie.
Le résultats que j'espérais est la donc je considere le probleme résolu.

Merci encore pour ton aide.
Bonne soirée
jy
Ajouter un commentaire
Ce document intitulé « excel macro vba aidez moi!!!!! » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?