Macro avec multiples fonctions

Résolu
Anthonyyy -  
chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Voici le fichier http://cjoint.com/?3LCkqgPdFJ4

je cherche à générer une macro avec ces différentes fonctions.
pourriez vous m'aider ?

dans l'onglet recup (2) :
- Masquer Colonne A
- Supprimer Colonnes C, D, G et H
- Supprimer les « 00000000 » en colonne I pour ne laisser que les 5 chiffres
- Placer un filtre automatique
- Générer un tri croissant par code article (colonne I)
- Insérer 1 colonne entre « code article » (colonne I) et « libellé article » (colonne J)

Dans la ligne 2 de la nouvelle colonne insérée, introduire le formule « =SI(E2=E1;1;0) » à appliquer dans toutes les cellules de la nouvelle colonne

Dans la nouvelle colonne, faire filtre sur =1 (c'est les doublons) et supprimer toutes les lignes égales à 1

Refaire un filtre pour tout afficher

Supprimer la nouvelle colonne

Ajuster la colonne des libellés en fonction du contenu

Faire un filtre sur la colonne libellé / personnalisé / commençant par / "s/t"

Supprimer toutes les lignes de ce filtre

Afficher tout

Faire un filtre sur date demande par ordre croissant (colonne E)

L'onglet "recup" est le résultat fait manuellement

Merci de votre aide

1 réponse

  1. chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 313
     
    Bonjour,

    as-tu des connaissances en VBA ? As-tu déjà commencé à développer ce que tu demandes?
    Ces forums sont surtout fait pour donner un coup de main, pas pour tout faire à la place des gens.

    Cordialement.
    0
    1. Anthonyyy
       
      Bonjour,

      j'ai quelques connaissances en piochant sur le net des fonctions.
      j'ai commencé le code mais un soucis sur le tri des données, ça me bascule ma ligne d'entêtes tout en bas alors que j'ai intégré Header:=xlGuess

      Sub macroPLA()
      Application.ScreenUpdating = False 'désactive le rafraichissement
      Sheets("recup").Activate 'active la feuille

      Dim I As Byte
      For I = 9 To 9 'précise la colonne
      Columns(I).TextToColumns Destination:=Cells(1, I) 'converti le format texte en standard
      Next I

      Columns("A").Select
      Selection.EntireColumn.Hidden = True 'masque la colonne

      Columns("G:H").Delete Shift:=xlToLeft 'supprime colonne
      Columns("C:D").Delete Shift:=xlToLeft 'supprime colonne

      'Range("A1").AutoFilter 'filtre automatique
      [A:AZ].Sort Key1:=Range("E1"), Order1:=xlAscending, Header:=xlGuess 'tri

      Range("F1").Select
      Selection.EntireColumn.Insert

      Application.ScreenUpdating = True 'réactive l'affichage
      End Sub
      0
    2. Anthonyyy
       
      Sub macroPLA()
      Application.ScreenUpdating = False 'désactive le rafraichissement
      Sheets("recup").Activate 'active la feuille

      Dim I As Byte
      For I = 9 To 9 'précise la colonne
      Columns(I).TextToColumns Destination:=Cells(1, I) 'converti le format texte en standard
      Next I

      Columns("A").Select
      Selection.EntireColumn.Hidden = True 'masque la colonne

      Columns("G:H").Delete Shift:=xlToLeft 'supprime colonne
      Columns("C:D").Delete Shift:=xlToLeft 'supprime colonne

      [A:AZ].Sort Key1:=Range("E1"), Order1:=xlAscending, Header:=xlYes 'tri les dates de la colonne AG

      Range("e2").Select
      donnee1 = ActiveCell
      ActiveCell.Offset(1, 0).Select

      While ActiveCell <> ""
      If ActiveCell = donnee1 Then
      ActiveCell.EntireRow.Delete
      ActiveCell.Offset(-1, 0).Select
      donnee1 = ActiveCell
      ActiveCell.Offset(1, 0).Select
      Else
      donnee1 = ActiveCell
      ActiveCell.Offset(1, 0).Select
      End If
      Wend

      Columns("E:F").AutoFit 'largeur auto

      Dim ligne As Long

      With Worksheets("recup")
      For ligne = .Cells(Rows.Count, 6).End(xlUp).Row To 2 Step -1
      If (InStr(UCase(.Cells(ligne, 6)), "S/T") > 0) Then
      .Cells(ligne, 6).EntireRow.Delete Shift:=xlUp
      End If
      Next
      End With


      [A:AZ].Sort Key1:=Range("C1"), Order1:=xlAscending, Header:=xlYes 'tri les dates de la colonne AG

      Application.ScreenUpdating = True 'réactive l'affichage
      End Sub
      0
    3. Anthonyyy
       
      merci pour le coup de main ;-)
      0
    4. chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 313
       
      Désolé mais j'ai pas vraiment le temps de regarder ça maintenant.
      Je peux y jeter un coup d'oeil ce weekend, pas avant.
      0