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 contenu cellule selon critères


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
    Assistant aux utilisateurs
    Inscrit en
    Mai 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Mai 2015
    Messages : 17
    Par défaut Effacer contenu cellule selon critères
    Bonsoir,

    Dès que je bloque pendant un moment sur quelque chose, je viens sur le forum et j'avance sur mon fichier.

    Donc je suis à nouveau bloqué et je fais appel à vous.

    J'ai un tableau sur lequel j'aimerais une fonction qui permet d'effacer le contenu de cellule selon 2 critères (si colonne 3 contient Y et colonne 6 contient "" de la même ligne).

    Et qui remonterait les lignes en dessous de celles supprimées.

    Par contre, je ne dois pas supprimer la ligne mais juste une plage de cellule.

    Dans l'attente d'indices pour avancer... le pire c'est que je suppose que c'est simple mais je n'y arrive plus.

    Bonne soirée.

    Sandrine

  2. #2
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonsoir Sandrine, bonsoir le forum,

    Si ton tableau commence en A1 et n'a pas d'étiquettes, le code ci-dessous devrait fonctionner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Macro1()
    Dim O As Worksheet 'déclare la variable O (Onglet)
    Dim TV As Variant 'déclare la varaibel TV (Tbleau des Valeurs)
     
    Set O = Worksheets("Feuil1") 'définit l'onglet O
    TV = O.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
    For I = UBound(TV, 1) To 1 Step -1 'boucle inversée sur toutes les ligne I du tableau des valeur TV (de la dernière à la première)
        'si la donnée ligne I colonne 3 de TV est égale à "Y" et la données ligne I colonne 6 de TV est vide
        'supprime les colonnes 1 à 6 de la ligne de l'onglet O (tu adapteras le 6 à ton cas car tu n'as pas précisé jusqu'où aller)
        If TV(I, 3) = "Y" And TV(I, 6) = "" Then O.Cells(I, 1).Resize(1, 6).Delete xlShiftUp
    Next I 'prochaine ligne de la boucle
    End Sub
    Sinon, il te faudra adapter la cellule de départ dans la ligne 6 du code et le ligne de départ dans la boucle de la ligne 7 du code..

  3. #3
    Membre averti
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mai 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Mai 2015
    Messages : 17
    Par défaut
    Bonsoir,

    J'ai essayé le code ce matin avec grand succès !!
    Ce soir je m'y remets et cela ne fonctionne plus :-(((

    Avez vous une idée de l'erreur que j'ai pu commettre ??

    Ci joint le fichier concerné.

    Je suis dépité !

    Bonne soirée. Sandrine.CARROSSERIE.XLSMCARROSSERIE.XLSM

  4. #4
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour Sandrine, bonjour le forum,

    Si j'ai bien compris ça se passe dans l'onglet VEHICULES qui n'est pas le premier. Donc le code devient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Macro1()
    Dim O As Worksheet 'déclare la variable O (Onglet)
    Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
     
    Set O = Worksheets("VEHICULES") 'définit l'onglet O
    TV = O.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
    For I = UBound(TV, 1) To 1 Step -1 'boucle inversée sur toutes les ligne I du tableau des valeur TV (de la dernière à la première)
        'si la donnée ligne I colonne 3 de TV est égale à "Y" et la données ligne I colonne 6 de TV est vide
        'supprime les colonnes 1 à 6 de la ligne de l'onglet O (tu adapteras le 6 à ton cas car tu n'as pas précisé jusqu'où aller)
        If TV(I, 3) = "Y" And TV(I, 6) = "" Then O.Cells(I, 1).Resize(1, 6).Delete xlShiftUp
    Next I 'prochaine ligne de la boucle
    End Sub

  5. #5
    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 Thautheme, Bonjour sandrine, Bonjour tous le monde
    J'ai testé ton code et je crois qu'il manque de déclarer I comme long

  6. #6
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour le fil, bonjour le forum,

    Citation Envoyé par BENNASR Voir le message
    je crois qu'il manque de déclarer I comme long
    Exact BENNASR ! Le code fonctionne quand même, si l'Option Explicit n'est pas spécifiée, mais je préfère habituellement déclarer toutes les variables. Merci de signaler cet oubli...

Discussions similaires

  1. Réponses: 6
    Dernier message: 21/09/2015, 09h26
  2. [XL-2010] Afficher le contenu d'une cellule selon 3 critères
    Par feiisha dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/09/2014, 15h24
  3. [XL-2003] Split et modification de cellule selon critères
    Par arkhang dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/08/2014, 13h45
  4. [XL-2007] Effacer contenu cellule
    Par Bugzy1963 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/02/2010, 17h32
  5. Réponses: 3
    Dernier message: 13/06/2006, 16h36

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