Macro avec multiples fonctions
Résolu
Anthonyyy
-
chossette9 Messages postés 4239 Date d'inscription Statut Contributeur Dernière intervention -
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
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:
- Macro avec multiples fonctions
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro maker - Télécharger - Divers Utilitaires
- Macro word - Guide
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
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
Je peux y jeter un coup d'oeil ce weekend, pas avant.