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 :

Surpression de contenu de cellules conditionnelle


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Contrôleur de gestion
    Inscrit en
    Août 2020
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Contrôleur de gestion

    Informations forums :
    Inscription : Août 2020
    Messages : 41
    Par défaut Surpression de contenu de cellules conditionnelle
    Bonjour les développeurs,
    Je suis trèèès débutante en VBA et Je voudrais développer un petit code qui va me permettre de supprimer le contenu de 2 cellules conditionnellement.
    Je m'explique alors j'ai 3 cellules A1, B1, C1 . Je voudrais que si dans A1 je tape "XX" b1 et c1 se vident automatiquement, et ce pour plusieurs lignes, par exemple de de la ligne 1 à la ligne 100.
    Merci !!

  2. #2
    Membre Expert Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Par défaut
    Bonsoir,

    Votre demande est réalisable en utilisant l'évènement worksheet_change, on intercepte si changement sur une cellule en colonne A = Xxx , on "vide" les cellules B et C de la ligne correspondante.

    Mais, est-il vraiment nécessaire de développer un code pour effectuer cette tâche ? Au lieu de simplement utiliser son clavier et sa souris ?

    Bav,

  3. #3
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    Bonjour
    Je suis trèèès débutante en VBA
    Si vous voulez qu'au moment de saisie en colonne "A" et si la valeur est "XX" ou "xx" dans ce cas l’événement Worksheet_Change
    Onglet develppeur / double clic sur la feuille approprié et mettre ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Worksheet_Change(ByVal Target As Range)
            If Target.Count > 1 Then Exit Sub 
            If Not Intersect(Target, Columns("A:C")) Is Nothing Then
                If Target = UCase("xx") Or Target = LCase("XX") Then Range("B" & Target.Row & ":C" & Target.Row).ClearContents
            End If
    End Sub
    mais si vous avez déjà une base de donnée et vous voulez supprimer le contenue de la cellule équivalente en colonne B et en colonne C donc vous insérez une bouton de commande liée au code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Option Explicit
    Sub test()
    Dim F As Worksheet
    Dim i As Long
    Dim L As Integer
    Set F = Sheets("Feuil1") ' définir le nom de l'onglet
    i = F.Cells(Rows.Count, 1).End(xlUp).Row ' permet de détecter la dernière ligne non vide de la colonne A
    For L = 2 To i 'à partir de la cellule n°2 jusqu'a la dernière ligne non vide 
    If F.Cells(L, 1) = UCase("xx") Or F.Cells(L, 1) = LCase("XX") Then F.Range(Cells(L, 2), Cells(L, 3)).ClearContents 'si la valeur de le cellule est xx alors effacer le contenue de la cellule en B et en C
    Next L ' Ligne suivante
    End Sub
    et si vous avez une grande base de donnée il est recommandé pour gagner en temps d'exécution de faire un filtre sur la colonne A et effacer les données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Option Explicit
    Sub testtt()
    Dim F As Worksheet
    Dim i As Long
    Dim L As Integer
    Application.ScreenUpdating = False
    Set F = Sheets("Feuil1")
    i = F.Cells(Rows.Count, 1).End(xlUp).Row
        F.Range("A1:C" & i).AutoFilter Field:=1, Criteria1:="XX"
       F.Range("B2", Cells(Rows.Count, "C").End(xlUp)).SpecialCells(xlCellTypeVisible).ClearContents
    F.ShowAllData
    Application.ScreenUpdating = True
    End Sub

  4. #4
    Membre averti
    Femme Profil pro
    Contrôleur de gestion
    Inscrit en
    Août 2020
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Contrôleur de gestion

    Informations forums :
    Inscription : Août 2020
    Messages : 41
    Par défaut
    Super, problème résoluu !!
    Merciiiii

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

Discussions similaires

  1. [XL-2016] Ajout ligne et clear content
    Par pink_marla dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 01/02/2019, 15h10
  2. [PowerShell] utiliser un wildcard avec les cmdlets test-path et clear-content
    Par laurentSc dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 20/10/2017, 20h56
  3. [CODE] Compilation conditionnelle ?
    Par Cornell dans le forum Langage
    Réponses: 3
    Dernier message: 16/09/2003, 18h16
  4. [XSL] déclaration conditionnelle
    Par Totsira dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 18/08/2003, 05h02
  5. ListView->Items->Clear() !!! Qques probl de perf
    Par Nicolas_a69 dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/08/2002, 11h49

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