Probleme macro
Cris68300
Messages postés
104
Statut
Membre
-
via55 Messages postés 14393 Date d'inscription Statut Membre Dernière intervention -
via55 Messages postés 14393 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai besoin d'aide...
C'est le début de la création de mon fichier, mais je rencontre déjà un problème lors de la macro pour trier= quand je trie le client 9 se retrouve sur facture 5 et le 5 sur la facture 9. pourquoi svp???
Le code créé est:
Sub Macro5()
'
' Macro5 Macro
'
'
ActiveWorkbook.Worksheets("Suivi facture").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Suivi facture").AutoFilter.Sort.SortFields.Add Key _
:=Range("A1:A3162"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Suivi facture").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
De plus je n'arrive pas a vous joindre mon fichier sur ce post pour meilleure compréhension...
Merci d'avance pour votre aide!!!
Cris
J'ai besoin d'aide...
C'est le début de la création de mon fichier, mais je rencontre déjà un problème lors de la macro pour trier= quand je trie le client 9 se retrouve sur facture 5 et le 5 sur la facture 9. pourquoi svp???
Le code créé est:
Sub Macro5()
'
' Macro5 Macro
'
'
ActiveWorkbook.Worksheets("Suivi facture").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Suivi facture").AutoFilter.Sort.SortFields.Add Key _
:=Range("A1:A3162"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Suivi facture").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
De plus je n'arrive pas a vous joindre mon fichier sur ce post pour meilleure compréhension...
Merci d'avance pour votre aide!!!
Cris
9 réponses
-
Bonjour
Poste un exemple de ton ficher sur monpartage.fr, fais créer un lien que tu copies et reviens coller ici
Cdlmnt
Via
-
https://mon-partage.fr/f/GpdE58xb/
Merci pour l'info, je ne connaissais pas... -
OK j'ai le fichier mais il n'y a pas de macro !!
-
Pourtant moi quand je l'ouvre via le lien, elle y est = bouton37
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Non je n'ai aucune macro associée au bouton
Cette macro doit être dans une autre fichier de ton ordi
Tu as du faire une copie du fichier pour l'envoyer mais sans macro
Chez toi ça fonctionne donc mais pas chez moi
Réenregistre ton fichier initial en extension xslm et reposte le sur mon partage
-
Ah ok, c'étais bien ça, merci encore:
https://mon-partage.fr/f/Uwx5ZVu7/ -
Toujours rien et en plus j'ai une erreur VBA à l'ouverture du fichier !
On va procéder autrement
Dis moi quel tri tu veux effectuer et je te mettrais la macro correspondante
Mais le problème que tes valeurs sont issus de formules les extrayant d'une autre feuille
"L'imagination est plus importante que le savoir." A. Einstein -
bizar...
juste tres simple, tri par ordre des numero de facture, sans afficher les vides, mais mon probleme est que certaine ligne ensuite ne concorde plus...
le client 9 se retrouve dans la facture 5-
Cela vient du fait qu'il y a des formules et non des valeurs
Il faut procéder autrement
Tu veux transferer toutes les infos de suivi devis dans suivi facture mais dans l'ordre des n°s ?
Si c'est cela on fait un macro qui actualise suivi facture en allant chercher les n°s dans l'ordre, après par formules RECHERCHEV on rapatrie les données
Est tu d'accord ? -
-
-
-
En fait pas besoin (il suffit de faire un NB.SI du n° facture sur la 1ere colonne, si le résultat est 0 on recopie le n°)
J'ai modifié la macro en conséquence
https://mon-partage.fr/f/zYNjH3JW/
Cdlmnt
Via
-
-
-
Désolé , c'est de ma faute, petite erreur d'écriture dans la macro
Remplace la par celle ci :Private Sub CommandButton1_Click() Dim LigneA As Long, ligneB As Long LigneA = Sheets("Suivi devis").Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row ligneB = Sheets("Suivi facture").Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row For n = 1 To Application.WorksheetFunction.CountA(Sheets("Suivi devis").Columns(8)) - 1 num = Application.WorksheetFunction.Small(Sheets("Suivi devis").Columns(8), n) If Application.WorksheetFunction.CountIf(Sheets("Suivi facture").Columns(1), num) = 0 Then ligneB = ligneB + 1 Sheets("Suivi facture").Range("A" & ligneB) = num End If Next End Sub
Cdlmnt
Via -
-
-