Macro avec multiples fonctions

Résolu
Anthonyyy -  
chossette9 Messages postés 4239 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

A voir également:

1 réponse

chossette9 Messages postés 4239 Date d'inscription   Statut Contributeur Dernière intervention   1 311
 
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
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
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
Anthonyyy
 
merci pour le coup de main ;-)
0
chossette9 Messages postés 4239 Date d'inscription   Statut Contributeur Dernière intervention   1 311
 
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