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

[VBA et MacroXL4]: Je trouve cela beau, alors je le partage avec vous

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 !

Staple1600

XLDnaute Barbatruc
Bonjour à tous

Au détour des mes pérégrinations sur le Web, je suis tombé en pamoison devant cette façon de faire pour supprimer des lignes selon critère.

Alors voici pour ceux que cela ravira (comme moi)

A tester sur un classeur vierge.

VB:
Sub Toujours_Cool_MacroXL4()
Dim rngAll As Range, rngCriteria As Range


'/// J'ai ajouté ceci juste pour générer des données de test
' c'est qui suit plus bas que j'adore ;)
With Range("A1")
With .Resize(26)
    .FormulaArray = "=REPT(CHAR(64+ROW()),4)": .Value = .Value
End With
.EntireRow.Insert: .Offset(-1) = "TEST"
End With
'//// fin création données test

MsgBox "Pause" & Chr(13) & "Les lignes différentes de ZZZZ seront supprimées" & Chr(13) & Chr(13) & "D'une façon que je trouve cool, et vous ?", vbExclamation, "Longue vie au macro XL4 dans VBA"

Application.ScreenUpdating = False
'adapté d'un code de Hans W. Herber
Set rngAll = Range("A1").CurrentRegion
    With rngAll
        .Name = "DataBase"
        Set rngCriteria = _
        .Item(1).Offset(, 2).Resize(2, 1)
    End With
  
   With rngCriteria
      .Name = "Criteria"
      .Cells(1, 1).Value = "TEST"
      .Cells(2, 1) = "<>ZZZZ"
      ExecuteExcel4Macro "DATA.DELETE()"
      .Clear
   End With
   
Application.ScreenUpdating = True
End Sub

C'est chouette, non ? Cela évite d'utiliser un filtre élaboré.

PS: Si vous avez d'autres exemples d'emploi de ExecuteExcel4Macro, n'hésitez pas à en faire part.
 
Re : [VBA et MacroXL4]: Je trouve cela beau, alors je le partage avec vous

Re


Où sont tes lunettes Sharky ? 😉

Lis bien les commentaires dans le code VBA.
 
Re : [VBA et MacroXL4]: Je trouve cela beau, alors je le partage avec vous

Bonjour JM, CC

Moi ausi j'aimais bien les macros XL4 🙂.

Mais ton code sur XL2007 semble ne pas fonctionner 😕
 

Pièces jointes

Re : [VBA et MacroXL4]: Je trouve cela beau, alors je le partage avec vous

bonjour tous 🙂🙂🙂
Michel🙂 je viens de tester sous 2007 chez moi ca marche???

ps correction ca marche pas sous 2007 j'avais teste sous 2003🙁🙁
 
Dernière édition:
Re : [VBA et MacroXL4]: Je trouve cela beau, alors je le partage avec vous

Bonsoir

Aie!

Bon bah va falloir installer Excel 97 ou 2000 ou 2003 dans une machine virtuelle pour tester 😉

N’empêche que je trouve cela plus simple et rapide que la suppression de lignes par un filtre élaboré en VBA 😉

Voir ci-dessous
Code:
Sub ADV_FIL()
Dim pf As Range
With Range("A1")
With .Resize(26)
    .FormulaArray = "=REPT(CHAR(64+ROW()),4)": .Value = .Value
End With
.EntireRow.Insert: .Offset(-1) = "TEST"
End With
[C1] = "TEST"
[C2] = "<>ZZZZ"
Range("A1:A26").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("C1:C2"), Unique:=False
Set pf = Range("_FilterDataBase")
pf.Offset(1, 0).Resize(pf.Rows.Count - 1).SpecialCells(12).Delete Shift:=xlUp
[C1:C2].Clear
End Sub

ExecuteExcel4Macro "DATA.DELETE()"
C'est plus limpide non 😉
 
Dernière édition:
- 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

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…