Probleme macro

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

9 réponses

  1. Bonjour

    Poste un exemple de ton ficher sur monpartage.fr, fais créer un lien que tu copies et reviens coller ici

    Cdlmnt
    Via
    1. https://mon-partage.fr/f/GpdE58xb/

      Merci pour l'info, je ne connaissais pas...
      1. Pourtant moi quand je l'ouvre via le lien, elle y est = bouton37
        1. 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
          1. Ah ok, c'étais bien ça, merci encore:

            https://mon-partage.fr/f/Uwx5ZVu7/
            1. 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
              1. 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
                1. 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 ?
                2. Oui tu as tout compris!!!! C'est exactement ce que je veux faire! Uniquement pour les devis facturés, donc que si il y a un numero de facture dans le fichier suivi devis
                3. @Cris68300Voilà ton fichier avec la macro associée au bouton
                  https://mon-partage.fr/f/BhuERglB/

                  Également mis les formules adéquates dans les autres colonnes que j'ai verrouillées avant d'activer la protection de la feuille de manière à éviter un effacement ded'une formule par mégarde

                  Cdlmnt
                  Via
                4. C'est vraiment super, juste un petit bug, plus tu clic sur mis a jour, plus sa se recopie et viens a la suite... peut etre le gerer via les doublons
                5. @Cris68300On peut le gérer en rajoutant une X dans une colonne de devis pour indiquer qu'il a été recopié
              2. 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
                1. Tu es vraiment très fort, j'apprécie!!!!! et surtout merci de ta rapidité des réponses...
                  juste dit moi comment enlever les protections de la case mise a jour... car d'un j'aimerais la déplacer mais de deux, surtout, j'aimerais voir le code histoire d'apprendre...

                  Mais vraiment merci beaucoup!!!!!
                2. Non il y a problème...
                  la facture 1 s'affiche dans la cellule du titre et la ligne n'apparais pas dans le suivi des factures
                3. @Cris68300Dé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
                4. Merci, mais visiblement non fonctionnelle... Mais merci quand meme
                5. @Cris68300Pourquoi non fonctionnelle ?
                  Je te renvoie le fichier qui fonctionne chez moi
                  https://mon-partage.fr/f/aQz43IOk/

                  Cdlmnt
                  Via