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. 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
    0
    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!!!!!
      0
    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
      0
    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
      0
    4. Merci, mais visiblement non fonctionnelle... Mais merci quand meme
      0
    5. @Cris68300Pourquoi non fonctionnelle ?
      Je te renvoie le fichier qui fonctionne chez moi
      https://mon-partage.fr/f/aQz43IOk/

      Cdlmnt
      Via
      0
  2. 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
    0
    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 ?
      0
    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
      0
    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
      0
    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
      0
    5. @Cris68300On peut le gérer en rajoutant une X dans une colonne de devis pour indiquer qu'il a été recopié
      0
  3. 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
    0
    1. Ah ok, c'étais bien ça, merci encore:

      https://mon-partage.fr/f/Uwx5ZVu7/
      0
      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
        0
        1. Pourtant moi quand je l'ouvre via le lien, elle y est = bouton37
          0
          1. OK j'ai le fichier mais il n'y a pas de macro !!

            0
            1. https://mon-partage.fr/f/GpdE58xb/

              Merci pour l'info, je ne connaissais pas...
              0
              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
                0