[AIDE] Macro commande de tri alphabétique
Fermé
ribery_7_91
Messages postés
233
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
4 septembre 2010
-
18 juin 2008 à 09:36
ribery_7_91 Messages postés 233 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 4 septembre 2010 - 19 juin 2008 à 11:00
ribery_7_91 Messages postés 233 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 4 septembre 2010 - 19 juin 2008 à 11:00
A voir également:
- [AIDE] Macro commande de tri alphabétique
- Invite de commande - Guide
- Excel trier par ordre alphabétique - Guide
- Commande terminal mac - Guide
- Macro word - Guide
- Macro logiciel - Télécharger - Organisation
12 réponses
onesdf
Messages postés
375
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
17 octobre 2008
120
18 juin 2008 à 09:50
18 juin 2008 à 09:50
Salut,
Application.Goto Reference:="Cote"
Ca signifie que tu as nommé le tableau à trier ?
Si tel est le cas alors redéfini ton "Cote" en prenant en compte ta ligne vide si "Cote" n'est pas utilisé ailleurs, sinon ajoute un "Cote2" à partir de A3.
Application.Goto Reference:="Cote"
Ca signifie que tu as nommé le tableau à trier ?
Si tel est le cas alors redéfini ton "Cote" en prenant en compte ta ligne vide si "Cote" n'est pas utilisé ailleurs, sinon ajoute un "Cote2" à partir de A3.
ribery_7_91
Messages postés
233
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
4 septembre 2010
16
18 juin 2008 à 11:41
18 juin 2008 à 11:41
Alors
tout d'abord merci de ton aide
Cote est une colonne de mon tableau
Mais le nom Cote dans le programme est en fait la case A1 que j'ai renommée
Que dois je faire??
tout d'abord merci de ton aide
Cote est une colonne de mon tableau
Mais le nom Cote dans le programme est en fait la case A1 que j'ai renommée
Que dois je faire??
onesdf
Messages postés
375
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
17 octobre 2008
120
18 juin 2008 à 11:52
18 juin 2008 à 11:52
Alors je ne comprends pas ton code :
Application.Goto Reference:="Cote" -> Cela sélectionne donc la cellule A1
Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
-> Le tri se fait sur la sélection en cours (donc A1)
Que donne un débogage "Pas à pas détaillé" de ta procédure ?
Application.Goto Reference:="Cote" -> Cela sélectionne donc la cellule A1
Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
-> Le tri se fait sur la sélection en cours (donc A1)
Que donne un débogage "Pas à pas détaillé" de ta procédure ?
ribery_7_91
Messages postés
233
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
4 septembre 2010
16
18 juin 2008 à 12:20
18 juin 2008 à 12:20
Mais ce que je ne comprend pas c'est que cela marchait avant
Lorsque la ligne que j'ai rajoutée n'existait pas la macro commande de tri marchait
C'est une ligne vide de 3 pixels colorée en orange pour délimiter les titres de tableau ( cote date saisie auteur etc ) et lorsque celle ci n'était pas la la macro fonctionnait
Sinon aurais tu une autre macro qui pourrait m'aider dans mon problème ??
Je te poste mon fichier excel pour que tu comprennes mieux
https://www.cjoint.com/?gsmtB2PmqB fichier excel
Merci
Lorsque la ligne que j'ai rajoutée n'existait pas la macro commande de tri marchait
C'est une ligne vide de 3 pixels colorée en orange pour délimiter les titres de tableau ( cote date saisie auteur etc ) et lorsque celle ci n'était pas la la macro fonctionnait
Sinon aurais tu une autre macro qui pourrait m'aider dans mon problème ??
Je te poste mon fichier excel pour que tu comprennes mieux
https://www.cjoint.com/?gsmtB2PmqB fichier excel
Merci
onesdf
Messages postés
375
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
17 octobre 2008
120
18 juin 2008 à 12:33
18 juin 2008 à 12:33
Ton lien ne fonctionne pas : Ce lien n'est pas ou n'est plus disponible.
Si ton code fonctionnait avant tu peux alors rajouter les lignes en gras dans ton code :
Le premier rajout supprime la ligne 2
Ensuite ton tri s'execute
Le second rajout remet la ligne 2
Le troisième défini la hauteur de ligne
Le dernier défini la couleur
Qu'en penses-tu ?
Si ton code fonctionnait avant tu peux alors rajouter les lignes en gras dans ton code :
Sub MacroTriCote() Rows(2).Delete Application.Goto Reference:="Cote" Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal Range("A2").Select Selection.EntireRow.Insert Rows(2).RowHeight = 2.25 Rows(2).Interior.ColorIndex = 45 Range("A3").Select End Sub
Le premier rajout supprime la ligne 2
Ensuite ton tri s'execute
Le second rajout remet la ligne 2
Le troisième défini la hauteur de ligne
Le dernier défini la couleur
Qu'en penses-tu ?
ribery_7_91
Messages postés
233
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
4 septembre 2010
16
18 juin 2008 à 12:58
18 juin 2008 à 12:58
ça marche je te remercie
http://www.files-save.com/download-8fc579391a3166e63d47c3115438f29e.html
Peux tu essayer de télécharger le fichier et me dire si ça marche
http://www.files-save.com/download-8fc579391a3166e63d47c3115438f29e.html
Peux tu essayer de télécharger le fichier et me dire si ça marche
onesdf
Messages postés
375
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
17 octobre 2008
120
18 juin 2008 à 13:03
18 juin 2008 à 13:03
Le lien fonctionne
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ribery_7_91
Messages postés
233
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
4 septembre 2010
16
18 juin 2008 à 13:17
18 juin 2008 à 13:17
OK
J'aurais une autre question mais qui n'as pas de rapport avec le tri
Comme tu peux voir dans mon fichier j'ai deux onglets Saisie Contrat et Saisie Document
Je voudrais en fait que l'accès à ces onglets soit fait par mot de passe
C'est a dire que lorsque quelqu'un va cliquer sur l'onglet pour ajouter des nouveaux contrats ou document on lui demande un mot de passe
Sa evitera que des personnes mal intentionnées saisisse des nouveaux documents
Comment je pourrais faire ça??
Merci
J'aurais une autre question mais qui n'as pas de rapport avec le tri
Comme tu peux voir dans mon fichier j'ai deux onglets Saisie Contrat et Saisie Document
Je voudrais en fait que l'accès à ces onglets soit fait par mot de passe
C'est a dire que lorsque quelqu'un va cliquer sur l'onglet pour ajouter des nouveaux contrats ou document on lui demande un mot de passe
Sa evitera que des personnes mal intentionnées saisisse des nouveaux documents
Comment je pourrais faire ça??
Merci
onesdf
Messages postés
375
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
17 octobre 2008
120
18 juin 2008 à 13:52
18 juin 2008 à 13:52
Tu dépend du niveau de sécurité dont tu as besoin :
Ca peut-être ca :
Ou bien un userform avec des zones de texte qui mettent des étoiles quand tu tapes le mot de passe, ou bien une protection de la feuille par mot de passe ...
Ca peut-être ca :
Private Sub Workbook_SheetActivate(ByVal Sh As Object) MdP_Contrat = "toto" MdP_Document = "tata" If Sh.Name = "Saisie Contrat" Then rep = InputBox("Saisissez le mot de passe") If rep = MdP_Contrat Then MsgBox "MdP Ok" Else MsgBox "Accès refusé !" Sheets(3).Select End If ElseIf Sh.Name = "Saisie Document" Then rep = InputBox("Saisissez le mot de passe") If rep = MdP_Document Then MsgBox "MdP Ok" Else MsgBox "Accès refusé !" Sheets(3).Select End If End If End Sub
Ou bien un userform avec des zones de texte qui mettent des étoiles quand tu tapes le mot de passe, ou bien une protection de la feuille par mot de passe ...
ribery_7_91
Messages postés
233
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
4 septembre 2010
16
18 juin 2008 à 14:04
18 juin 2008 à 14:04
Quelle est la meilleure securité et comment faire??
onesdf
Messages postés
375
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
17 octobre 2008
120
18 juin 2008 à 14:43
18 juin 2008 à 14:43
Si tu cherches réellement une bonne sécurité, je te conseille de faire un classeur séparé "Saisie Contrats", un classeur "Saisie Documents" et de mettre des droits au niveau fichier sur tes classeurs (Bouton droit sur le fichier, Propriétés, onglet sécurité).
De cette façon, seuls les utilisateurs déclarés pourront ouvrir ces fichiers sans autre mot de passe que celui d'ouverture de session Windows.
De cette façon, seuls les utilisateurs déclarés pourront ouvrir ces fichiers sans autre mot de passe que celui d'ouverture de session Windows.
ribery_7_91
Messages postés
233
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
4 septembre 2010
16
18 juin 2008 à 14:53
18 juin 2008 à 14:53
non je préférerais tout mettre dans le méme classeur
Comment avoir la meilleure securité en gardant un seul classeur
Je voudrais un truc avec mot de passe
Comment avoir la meilleure securité en gardant un seul classeur
Je voudrais un truc avec mot de passe
onesdf
Messages postés
375
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
17 octobre 2008
120
18 juin 2008 à 15:09
18 juin 2008 à 15:09
Ben c'est toi qui voit ... sachant que les protections des fichiers excel et du code vba sont facile à faire tomber.
ribery_7_91
Messages postés
233
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
4 septembre 2010
16
18 juin 2008 à 15:20
18 juin 2008 à 15:20
Alors j'ai vu ton MP
Ce n'est pas grave que les securité excel soient faciles a faire tomber
Je veux juste un truc ki me demande un mot de passe comme sa sa fera plaisir a mon entreprise
en fait j'ai pas trop le temps et il faut que sa leur convienne et c'est ça qu'ils veulent
Comment je peux faire??
Ce n'est pas grave que les securité excel soient faciles a faire tomber
Je veux juste un truc ki me demande un mot de passe comme sa sa fera plaisir a mon entreprise
en fait j'ai pas trop le temps et il faut que sa leur convienne et c'est ça qu'ils veulent
Comment je peux faire??
onesdf
Messages postés
375
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
17 octobre 2008
120
18 juin 2008 à 16:53
18 juin 2008 à 16:53
Alors fais simplement un userform avec une zone de texte et un bouton OK
De tête :
Sub Bouton1_Click()
MdP="toto"
if TextBox1.Value <> MdP Then
Sheets(3).select
end if
unload userform1
End Sub
et dans le code de ThisWorkBook tu mets
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
if sh.name="Saisie Documents" then
userform1.show
end if
End Sub
De tête :
Sub Bouton1_Click()
MdP="toto"
if TextBox1.Value <> MdP Then
Sheets(3).select
end if
unload userform1
End Sub
et dans le code de ThisWorkBook tu mets
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
if sh.name="Saisie Documents" then
userform1.show
end if
End Sub
ribery_7_91
Messages postés
233
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
4 septembre 2010
16
18 juin 2008 à 18:25
18 juin 2008 à 18:25
Je ne sais pas faire un userform
Comment faire?
Comment faire?
onesdf
Messages postés
375
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
17 octobre 2008
120
18 juin 2008 à 18:43
18 juin 2008 à 18:43
Insertion, UserForm dans l'éditeur Visual Basic et tu places les éléments de ta boîte de dialogue
ribery_7_91
Messages postés
233
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
4 septembre 2010
16
18 juin 2008 à 22:50
18 juin 2008 à 22:50
OK et comment la programmer???
Je te remercie de ton aide
Je te remercie de ton aide
onesdf
Messages postés
375
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
17 octobre 2008
120
18 juin 2008 à 23:03
18 juin 2008 à 23:03
Voir post #15
ribery_7_91
Messages postés
233
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
4 septembre 2010
16
19 juin 2008 à 10:12
19 juin 2008 à 10:12
OK
Je te remercie beaucoupe mais je viens de constater des petits problèmes dans la macro qui me fait rajouter des lignes
Comme tu as vu dans mon fichier j'ai plusieurs onglets.
Pour l'onglet Contrats ça marche nickel ça me suppirme la ligne puis la recréee mais pour l'onglet Documents je peux executer la macro une fois puis sa me met un bug et la console de débogage me surligne ça en jaune
Selection.EntireRow.Insert
De plus j'ai un deuxième problème, lorsque je rajoute une ligne avec l'aide de ta macro la ligne qui est rajoutée est "complète"
Je m'explique,
La ligne se termine à la derniere colonne ( la colonne IV ) or je voudrais qu'elle fasse uniquement la taille de mon tableau
Quelle condition dois je rajouter??
Merci de ton aide
Je te remercie beaucoupe mais je viens de constater des petits problèmes dans la macro qui me fait rajouter des lignes
Comme tu as vu dans mon fichier j'ai plusieurs onglets.
Pour l'onglet Contrats ça marche nickel ça me suppirme la ligne puis la recréee mais pour l'onglet Documents je peux executer la macro une fois puis sa me met un bug et la console de débogage me surligne ça en jaune
Selection.EntireRow.Insert
De plus j'ai un deuxième problème, lorsque je rajoute une ligne avec l'aide de ta macro la ligne qui est rajoutée est "complète"
Je m'explique,
La ligne se termine à la derniere colonne ( la colonne IV ) or je voudrais qu'elle fasse uniquement la taille de mon tableau
Quelle condition dois je rajouter??
Merci de ton aide
onesdf
Messages postés
375
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
17 octobre 2008
120
19 juin 2008 à 10:35
19 juin 2008 à 10:35
Oui c'est la ligne entière qui est colorée, à l'aide de la ligne
Rows(2).Interior.ColorIndex = 45
Si tu ne veux qu'une plage il faut mettre
Range("A2:M2").Interior.ColorIndex = 45
Rows(2).Interior.ColorIndex = 45
Si tu ne veux qu'une plage il faut mettre
Range("A2:M2").Interior.ColorIndex = 45
ribery_7_91
Messages postés
233
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
4 septembre 2010
16
19 juin 2008 à 11:00
19 juin 2008 à 11:00
OK je te remercie
J'ai d'autres problèmes que je te fais part :
Avant je n'avais pas la ligne orange dans mes feuilles excel ( Contrats et Documents ) donc les macros marchaient parfaitement. Mais depuis que j'ai ajouté cette ligne orange cela ne marche plus alors voila mes problèmes :
1er problème :
- Les macros de tri marchent parfaitement bien sous l'onglet Contrats mais sous l'onglet Documents, je peux executer une seule fois une des macros et si je tente d'executer une deuxiéme ou une autre macro cela me met un bug et lorsque j'ouvre VBA Editor pour le debogage ça me surligne cette ligne en Jaune :
Selection.EntireRow.Insert
Je ne comprends pas surtout que ça marche sous Contrats
Voici une des macros de tri :
Sub MacroTriCote()
Rows(2).Delete
Application.Goto Reference:="Cote"
Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("A2").Select
Selection.EntireRow.Insert
Rows(2).RowHeight = 2.25
Rows(2).Interior.ColorIndex = 45
Range("A3").Select
End Sub
Ensuite 2eme problème :
- Lors de la saisie d'un nouveau document ou contrat cela ne marche plus du à la ligne que j'ai rajouté. Je pense qu'il faut faire comme pour les macros de tri en supprimant cette ligne puis la rajouter mais je ne sais pas où je dois mettre les instructions pour que ça marche correctement.
Aurais tu des solutons??
Merci beaucoup
J'ai d'autres problèmes que je te fais part :
Avant je n'avais pas la ligne orange dans mes feuilles excel ( Contrats et Documents ) donc les macros marchaient parfaitement. Mais depuis que j'ai ajouté cette ligne orange cela ne marche plus alors voila mes problèmes :
1er problème :
- Les macros de tri marchent parfaitement bien sous l'onglet Contrats mais sous l'onglet Documents, je peux executer une seule fois une des macros et si je tente d'executer une deuxiéme ou une autre macro cela me met un bug et lorsque j'ouvre VBA Editor pour le debogage ça me surligne cette ligne en Jaune :
Selection.EntireRow.Insert
Je ne comprends pas surtout que ça marche sous Contrats
Voici une des macros de tri :
Sub MacroTriCote()
Rows(2).Delete
Application.Goto Reference:="Cote"
Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("A2").Select
Selection.EntireRow.Insert
Rows(2).RowHeight = 2.25
Rows(2).Interior.ColorIndex = 45
Range("A3").Select
End Sub
Ensuite 2eme problème :
- Lors de la saisie d'un nouveau document ou contrat cela ne marche plus du à la ligne que j'ai rajouté. Je pense qu'il faut faire comme pour les macros de tri en supprimant cette ligne puis la rajouter mais je ne sais pas où je dois mettre les instructions pour que ça marche correctement.
Aurais tu des solutons??
Merci beaucoup