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

Microsoft 365 Macro copie ligne dont colonne E non vide

  • Initiateur de la discussion Initiateur de la discussion raf26
  • Date de début Date de début

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 !

raf26

XLDnaute Occasionnel
Bonjour le forum,

J'aurais besoin de votre aide pour une macro

J'aimerais que cette macro copie les lignes de ma feuille données vers la feuille export

--> uniquement si la colonne Qté est complétée (ou si non vide)

--> donc exclure la copie si la quantité est vide

Ce qui me donne sur la feuille export, uniquement des lignes avec une quantité.

Je vous joint un fichier test avec le résultat attendu pour être plus explicite.

Merci d'avance.

Bonne soirée
 

Pièces jointes

Solution
Bonsoir @raf26,

Un essai dans le fichier joint. Cliquez sur le bouton Hop!

Le code dans Module1 :
VB:
Sub FiltrerCopier()
   With Sheets("export")
      Intersect(.Range("a1").CurrentRegion, .Columns(1).Resize(, 7)).Clear
      With Sheets("données")
         .Range("j1").Clear
         .Range("j2").Formula = "=E2<>"""""
         .Range("A1").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=.Range( _
              "J1:J2"), CopyToRange:=Sheets("export").Range("a1:g1"), Unique:=False
         .Range("j1:j2").Clear
      End With
      Intersect(Columns(1).Resize(, 7), .Rows(1)).Delete xlShiftUp
   End With
End Sub
Bonsoir @raf26,

Un essai dans le fichier joint. Cliquez sur le bouton Hop!

Le code dans Module1 :
VB:
Sub FiltrerCopier()
   With Sheets("export")
      Intersect(.Range("a1").CurrentRegion, .Columns(1).Resize(, 7)).Clear
      With Sheets("données")
         .Range("j1").Clear
         .Range("j2").Formula = "=E2<>"""""
         .Range("A1").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=.Range( _
              "J1:J2"), CopyToRange:=Sheets("export").Range("a1:g1"), Unique:=False
         .Range("j1:j2").Clear
      End With
      Intersect(Columns(1).Resize(, 7), .Rows(1)).Delete xlShiftUp
   End With
End Sub
 

Pièces jointes

- 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

Réponses
3
Affichages
750
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…