IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Effacer le contenu de certaines cellules aléatoires [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 42
    Points : 35
    Points
    35
    Par défaut Effacer le contenu de certaines cellules aléatoires
    Bonjour,
    je cherche à faire une macro (bouton RAZ) pour effacer le contenu de certaines cellules (colorées en jaune) dans l'exemple
    la première cellule étant en AB25
    on continue par la suite sur la ligne 25 jusqu'à la dernière colonne qui est aléatoire et en faisant un step de 3 colonne
    on continue après sur la colonne AB jusqu'à la dernière ligne aléatoire et en faisant un step de 2 lignes
    merci de votre aide
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 232
    Points : 5 632
    Points
    5 632
    Par défaut
    Bonjour,

    Essayez ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Sub Effacer()
        Dim Lig_Deb As Long, DerLig As Long, Col As Long, l As Long
        Application.ScreenUpdating = False
        Lig_Deb = 25
        DerLig = [A1000].End(xlUp).Row
        For l = Lig_Deb To DerLig Step 2 'passe les lignes en revue, avec incrémentation des lignes par pas de 2
            Col = 28 'commence à la colonne AB 
            Do While Cells(l, Col).Interior.ColorIndex = 6 'tant que la cellule est avec un fond Jaune
                Cells(l, Col).ClearContents 'effacement contenu cellule
                Col = Col + 3 'incrémentation des colonnes par pas de 3
            Loop 'cellule suivante
        Next l 'Ligne suivante
    End Sub
    Cdlt

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 42
    Points : 35
    Points
    35
    Par défaut
    Bonjour Arturo83,
    merci beaucoup pour l'idée
    la couleur jaune des cellules était seulement pour montrer les cellules que je voulais considérer
    j'ai modifié un peu ton code pour mieux répondre à mon besoin
    et voici le résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    Sub RaZ()
     
        DerLig As Long, DerCol As Long, Col As Long, Lig As Long
     
        Application.ScreenUpdating = False
     
        DerLig = Cells(Rows.Count, "B").End(xlUp).Row
        DerCol = Cells(25, Cells.Columns.Count).End(xlToLeft).Column
     
        For Lig = 25 To DerLig Step 2 'passe les lignes en revue, avec incrémentation des lignes par pas de 2
            Col = 28 'commence à la colonne AB
            Do While Col <= DerCol 'tant que la dernière colonne n'est pas atteinte
                Cells(Lig, Col).ClearContents 'effacement contenu cellule
                Col = Col + 3 'incrémentation des colonnes par pas de 3
            Loop 'cellule suivante
        Next Lig 'Ligne suivante
     
        Application.ScreenUpdating = True
     
    End Sub

  4. #4
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 232
    Points : 5 632
    Points
    5 632
    Par défaut
    Bonjour,

    Votre code doit générer un message d'erreur, il manque "Dim" dans la déclaration des variables.
    Si vous pouvez effectuer les recherches par colonne suivant le remplissage des cellules et non sur la couleur du fond, vous pouvez simplifier comme ceci: La recherche de la dernière colonne est recalculée pour chaque ligne testée, ce qui augmente aussi la vitesse d'exécution vu que la recherche par ligne s'arrête sur la dernière colonne trouvée de chaque ligne et qui n'est pas forcément la même partout (il est inutile de tester 100 colonnes si la dernière colonne de la ligne testée s'arrête à 30).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub RaZ()
        Dim DerLig As Long, DerCol As Long, Col As Long, Lig As Long
        Application.ScreenUpdating = False
        DerLig = Cells(Rows.Count, "B").End(xlUp).Row
     
        For Lig = 25 To DerLig Step 2 'passe les lignes en revue, avec incrémentation des lignes par pas de 2
            DerCol = Cells(Lig, Cells.Columns.Count).End(xlToLeft).Column
            For Col = 28 To DerCol Step 3
                Cells(Lig, Col).ClearContents 'effacement contenu cellule
            Next Col 'colonne suivante
        Next Lig 'Ligne suivante
    End Sub
    Cdlt

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/10/2018, 11h53
  2. Effacer le contenu de certaines cellules
    Par Alban 56 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 25/05/2012, 15h35
  3. Effacement du contenu d'une cellule sur Change ?
    Par marot_r dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 15/11/2007, 22h14
  4. Recopier le contenu de certaines cellules
    Par Look dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/05/2007, 23h02
  5. Ma Macro copie le contenu de certaines cellules mais pas d'autres
    Par zococo dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 25/01/2007, 12h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo