Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Aide pour macro debutant

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

urbanito1

XLDnaute Occasionnel
Bonjour à la communauté,

lorsque j'extrait des données d'un logiciel comptable j'obtiens une liste type : liste originale, avec des intitulés de colonne en décallage

j'ai enregistrée une petite macro simple pour corriger ( fichier macro 1

*** jusque là ok

je voudrais maintenant supprimer toutes les lignes de la colonne A contenant les références

84511/11105-03
84511/11101-03
84511/11102-03

est-il possible de m'ajouter la procédure à ma macro enregistrée..?

Merci bien
urbanito1
 

Pièces jointes

Re : Aide pour macro debutant

Salut bien,
J'ai réduit ta macro et ajouté pour supprimer certaines lignes.
Je n'ai pas testé.
Bruno

Code:
Sub test_colonnes()
'
' test_colonnes Macro
'
' Touche de raccourci du clavier: Ctrl+Maj+C
'
    Range("C1").Cut Destination:=Range("B1")
    Range("D1").Cut Destination:=Range("C1")
    Columns("D:D").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("F1").Cut Destination:=Range("E1")
    Range("G1").Cut Destination:=Range("F1")
    Columns("F:F").Cut Destination:=Columns("D:D")
    Range("H1").Cut Destination:=Range("G1")
    Range("K1").Cut Destination:=Range("H1")
    Columns("F:F").Delete Shift:=xlToLeft
    Range("H1").Cut Destination:=Range("J1")
    Range("I1").Cut Destination:=Range("H1")
    Range("J1").Cut Destination:=Range("I1")
    Range("L1").Cut Destination:=Range("J1")
    Range("M1").Cut Destination:=Range("K1")
    Range("N1").Cut Destination:=Range("L1")
    Range("O1").Cut Destination:=Range("M1")
    Range("P1").Cut Destination:=Range("N1")
    Range("Q1").Cut Destination:=Range("O1")
    Range("R1").Cut Destination:=Range("P1")
    
   For lig = [A65536].End(xlUp).Row To 2 Step -1
   If Left(Cells(lig, 1), 5) = 84511 Then Rows(lig).Delete
   Next
End Sub
 
Dernière édition:
Re : Aide pour macro debutant

hello Bruno
extra c'est bien
si je peux ..
For lig = [A65536].End(xlUp).Row To 2 Step -1
If Left(Cells(lig, 1), 5) = 84511 Then Rows(lig)
.Delete
Next

peux-tu m'expliquer? merci
 
Re : Aide pour macro debutant

Re:
[A65536].End(xlUp).Row renvoie le N° de dernière ligne de col A
Step -1 quand on efface des lignes il est conseillé de commencer par le bas et de remonter
donc For lig=du bas to 2 et le step est le pas du for donc -1 pour remonter.

If Left(Cells(lig, 1), 5) = 84511 Then Rows(lig).Delete
si les 5 chiffres de gauche de la cellule =84511 alors on supprime la ligne.
Ben c'est tout.
Bon apprentissage finalement c'est pas sorcier
Bruno
 
Re : Aide pour macro debutant

Merci Bruno

je comprends , il me supprime tout ce qui commence par 84511...

je pourrai adapter pour d'autres applications

mais dans le cas présent

je voudrais exclusivement supprimer les 3 paramètres en jaune

peux-tu modifier la macro ? à ta meilleure convenance

En te remerciant

Urbanito
 

Pièces jointes

Re : Aide pour macro debutant

Re,
ok voici pour supprimer les 3 codes, je te mets que la boucle
Bruno

Code:
   For lig = [A65536].End(xlUp).Row To 2 Step -1
   If Cells(lig, 1) = "84511/11105-03" Or _
      Cells(lig, 1) = "84511/11102-03" Or _
      Cells(lig, 1) = "84511/11101-03" Then Rows(lig).Delete
   Next
 
Re : Aide pour macro debutant

Bonsoir à tous

urbanito1
...

je voudrais maintenant supprimer toutes les lignes de la colonne A contenant les références

84511/11105-03
84511/11101-03
84511/11102-03

est-il possible de m'ajouter la procédure à ma macro enregistrée..?

Merci bien
urbanito1

En pareil cas, personnellement je passerai par le filtre élaboré (et sans macro)
avec un critère par formule (voir la macro pour la formule 😉 )
Une fois, les lignes filtrées, il suffit de les sélectionner, puis faire Edition/Supprimer ligne entière

PS: par commodité et puisque que tu veux une macro, je mets le code VBA équivalent à la manipulation évoquée ci-dessus.

Code:
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 11/07/2012 par STPLM

    Range("B2").FormulaR1C1 = _
        "=OR(RC[-1]=""84511/11105-03"",RC[-1]=""84511/11101-03"",RC[-1]=""84511/11102-03"")"
    Range("A1:A25").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
        Range("B1:B2"), Unique:=False
End Sub
 
Re : Aide pour macro debutant

Bonsoir à tous
merci Staple1600
je pensais que c'était plus facile en macro
j'extrais des données chaque mois...et je peux arriver jusqu'à 100.000 lignes d'où mon idée de faire une macro....
débutant en macro, cela va aussi me permettre d'y voir un peu plus
urbanito
 
Re : Aide pour macro debutant

Bonsoir urbanito1, Youky(BJ), apt, le fil, le forum


Au départ une macro enregistre ce que tu fais manuellement dans Excel
Donc tu as le choix😉
Faire chaque fois la manipulation manuellement
ou utiliser la macro reproduisant ce que tu as fais manuellement
Ici dans le cas de l'emploi du filtre élaboré, à toi de voir ce que tu préfères à l'utilisation.

PS: Comme ton titre parle de débutant, j'ai t'ai proposé solution simple (la manuelle et la version macro)
Il y a évidemment d'autre possibilités un peu plus complexe comme celle proposée par Youky(BJ) mais comme disent nos amis anglais : adoptons la K.I.S.S 😉 attitude, non ?

PS: Ici pour les francophones
 
Dernière édition:
Re : Aide pour macro debutant

salut le forum
merci staple1600
je commence à connaître pas mal de choses
mais quand je vois ce qui circule dans ce forum ..je me sens tout petit
et donc je suis encore au stade débutan
merci bien
urbanito1
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…