Convertir macro en code vba [Résolu/Fermé]

Signaler
Messages postés
4278
Date d'inscription
mardi 5 février 2013
Statut
Membre
Dernière intervention
25 février 2019
-
jc80
Messages postés
4278
Date d'inscription
mardi 5 février 2013
Statut
Membre
Dernière intervention
25 février 2019
-
Bonjour,

J'aimerais savoir comment convertir ou traduire une macro excel en code vba
Windows 7 Office 2007.
merci pour votre aide
Cordialement



10 réponses

Messages postés
17021
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
24 février 2020
3 834
Bonsoir,

tu peux expliquer ce que tu veux ou donner un exemple, parce que traduire une macro excel en code vba, une macro est déjà écrite en code VBA ou alors il s'agit d'un code très ancien sous Excel 5 je crois ou le code était en Français
Messages postés
4278
Date d'inscription
mardi 5 février 2013
Statut
Membre
Dernière intervention
25 février 2019
1 121
Bonjour Micke-31
Merci pour ta réponse
Voila le genre de macro que j'ai enregistrée elle fonctionne très bien ,
mais je pense qu'il y a des termes qui sont inutiles.
C'est là ou je voudrais simplifier.
Mais mes compétences en la matière sont limitées
Si tu peux m'éclairer je suis preneur.
Cordialement

Sub tri()
'
' tri Macro
'

'
Range("C2:C150").Select
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("C2"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Feuil1").Sort
.SetRange Range("A2:C150")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Messages postés
17021
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
24 février 2020
3 834
Re,

ton code effectivement contient des lignes inutiles pour simplement filtrer ta plage

explique exactement ce que tu veux faire voir jusqu'à quel point il est possible de l'améliorer, et après avoir filtré ta colonne C que veux tu faire
Messages postés
4278
Date d'inscription
mardi 5 février 2013
Statut
Membre
Dernière intervention
25 février 2019
1 121
Ci-joint un exemple raccourci (nombre de colonne) de ce que je veux faire

http://www.cjoint.com/c/EIwpmn8YtS1
Messages postés
17021
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
24 février 2020
3 834
Re,

donc il faut filtrer ta liste colonne C pour avoir tous les benjamin2
puis la colonne B pour les points soit mathieu avec 250 puis guy avec 228 etc ...
au dessous junior, puis senior 1 en premier canard avec 600 puis dupont avec 500 etc ...

es ce normal qu'il y ai un benjamin 1F ou es ce un exemple
Messages postés
4278
Date d'inscription
mardi 5 février 2013
Statut
Membre
Dernière intervention
25 février 2019
1 121
Oui c'est cela
pour le benjamin1F a remplacer par benjamine1
Messages postés
17021
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
24 février 2020
3 834
Re,

Ok, je suis sur le point de sortir, mais dès mon retour je te fais ce code
Messages postés
4278
Date d'inscription
mardi 5 février 2013
Statut
Membre
Dernière intervention
25 février 2019
1 121
OK Merci
Messages postés
17021
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
24 février 2020
3 834
Re,

bon en D2 colle cette formule

=SOMMEPROD(($B$2:$B$200>=B2)*($C$2:$C$200=C2))


en F2 cette formule, la colonne F pourra être masquée

=C2&SOMMEPROD(($B$2:$B$200>=B2)*($C$2:$C$200=C2))


puisque tu as créé un bouton activeX à la place d'appeler le code Tri que tu supprime colle ce code

Private Sub CommandButton1_Click()
With Worksheets("Feuil1")
With .Range("A2:F" & .Range("A65536").End(xlUp).Row)
.Sort key1:=.Item(6, 6), order1:=xlAscending, Header:=xlNo
End With
End With
End Sub
Messages postés
4278
Date d'inscription
mardi 5 février 2013
Statut
Membre
Dernière intervention
25 février 2019
1 121
Bonjour

J'ai mis en place et cela fonctionne.
Merci pour ton aide
Cordialement