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

pbs macros excel VBA

  • Initiateur de la discussion Initiateur de la discussion nicof
  • 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 !

N

nicof

Guest
Bjr à tous,

Je suis stagiaire et on m'a filé un truc à faire qui me prend des plombes.
Il s'agit de sélectionner sur un fichier toutes les lignes "grises", de les couper puis de les coller sur une autre feuille Excel.

En fait, dans ce fichier de plus de 4000 lignes, sont répertiorés tous les clients.
Dès qu'un client a payé, le gestionnaire "grise" la ligne mais la laisse dans le fichier.
En gros ce mois, y a eu 500 lignes grisées sur les 4000 lignes.
C'est super long pour moi de sélectionner une par une ces lignes et de les coupe-coller sur une autre feuille

C'est pourquoi, j'aimerais bien que vous me filiez un programme pour çà afin de créer une macro qui le fasse automatiquement quand je le souhaite.

Cordialement.
 
Re : pbs macros excel VBA

bonjour nicof,

Ma petite contribution, à placer dans un module VBA :
Code:
Sub LignesGrisees()
    Dim lngLigneDebut   As Long
    Dim lngLigneFin     As Long
    Dim wbkClasseur     As Workbook
    Dim strRange        As String
 
    ' création d'un nouveau classeur
    Set wbkClasseur = Workbooks.Add
 
    ' on revient sur le fichier source
    ThisWorkbook.Activate
 
    ' on isole les lignes non-blanches
    lngLigneDebut = 1
    lngLigneFin = 1
    Do Until Cells(lngLigneDebut, 1).Value = ""
        If Cells(lngLigneDebut, 1).Interior.ColorIndex <> xlNone Then
            lngLigneFin = lngLigneDebut
            Do While Cells(lngLigneFin, 1).Interior.ColorIndex <> xlNone
                lngLigneFin = lngLigneFin + 1
            Loop
            strRange = strRange & lngLigneDebut & ":" & lngLigneFin - 1 & ","
            lngLigneDebut = lngLigneFin
        Else
            lngLigneDebut = lngLigneDebut + 1
        End If
    Loop
    ' enlever la dernière virgule
    strRange = Left(strRange, Len(strRange) - 1)
 
    ' on copie les lignes non-blanches
    Range(strRange).Copy
 
    ' et on les colle dans le nouveau classeur
    wbkClasseur.Activate
    ActiveSheet.Paste
    ' puis on se positionne juste en dessous
    ' pour pouvoir continuer les copier/coller
    Range("A65536").End(xlUp).Offset(1, 0).Select
 
    Set wbkClasseur = Nothing
End Sub
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
38
Affichages
1 K
Réponses
11
Affichages
1 K
Réponses
6
Affichages
1 K
I
  • Résolu(e)
XL 2016 Excel vba
Réponses
24
Affichages
2 K
Iibnou1
I
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…