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 :

Suppression de lignes par segment de contenu dans une case. [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2012
    Messages : 28
    Par défaut Suppression de lignes par segment de contenu dans une case.
    Hello world

    Petit appel à l'aide, s'il vous plait...

    Car a chaque jour une nouvelle question !
    Toujours sur un projet d'automatisation, je me retrouves avec une nouvelle question.

    Dans une macro, je souhaites supprimer des lignes en fonction du contenu d'une colonne.

    Explication par l'exemple.

    Si le contenu est "texte_exemple_A 01.01.1900" Alors la ligne est supprimée.
    Si le contenu est "texte_exemple_A 01.01.1900 / texte_exemple_B", alors la ligne doit être conservée.

    Il s'avère que la date est variable. Ce qui est important est que toute case contenant un "/ Texte_exemple_B" soit supprimée.
    Je pensais donc faire ça par Autofilter, mais je me heurte au problème de la date qui change et le "Texte_exemple_B" aussi d'ailleurs.
    Le "texte_exemple_A" a une 30aine de valeurs différentes possibles, et le "texte_exemple_B" une 20aine de valeurs différentes possibles aussi, donc je me vois mal faire une macro avec tous les exemples possibles.

    Peut-être faire une macro avec une recherche sur le " / " et dans ce cas supprimer la ligne s'il est présent ?

    En sachant que dans cette même macro, je dois aussi faire des recherches sur d'autres contenu de la colonne concernée et supprimer les lignes d'une dizaines d'autres genre de valeurs différentes...

    SI sur la case (X, Y) le "texte_exemple_A" ou "texte_exemple_B" ou "etc"... is TRUE then deletelign. retester la ligne, si texte absent, Ligne+1.

    Ce serait quelque chose comme ça ?

    Merci d'avance !

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    concernant le critère "contient /" (contenu en colonne A dans l'exemple)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim i As Long
     
    For i = Range("A" & Rows.Count).End(xlUp).Row To 1 Step -1
        If InStr(Range("A" & i).Value, "/") > 0 Then Rows(i).Delete
    Next i
    A toi d'adapter pour les autres critères

    NB : attention, pas de retour arrière possible. Faire une sauvegarde de ton fichier avant de lancer

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2012
    Messages : 28
    Par défaut
    Merci beaucoup pour la réponse!
    Je m'en vais décortiquer et tester ceci de ce pas.


    Et je repasse pour cliquer "résolu" dès que ...

    PS : No worries, Je travailles sur des fichiers de test, mais merci, ça peut toujours sauver une vie

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2012
    Messages : 28
    Par défaut

    Rapide et efficace... J'adore.

    Merci beaucoup pour ton aide précieuse..

    A plus tard

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2012
    Messages : 28
    Par défaut
    Bon la question initiale est résolue, mais comme la question qui suit ressemble à 99% à la première ... je me permets de poser à la suite.

    Concernant le bout de code qui m'a été donné :

    Comment peut-il être modifié pour supprimer les lignes qui ne contiennent pas "/" justement ? Faire l'inverse de ce que fais le code actuel :

    Par exemple :
    Conserver les "texte_exemple_A 01.01.1900 / texte_exemple_B"
    Et supprimer les "texte_exemple_A 01.01.1900" ...

    En fait, mettre une exclusion sur le "/"

    Par avance, merci !

  6. #6
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    InStr(Range("A" & i).Value, "/")
    La ligne code ci dessus retourne l'emplacement du caractère "/" dans la cellule passée en premier paramètre.
    en faisant sur InStr tu devrais faire la déduction de ce qu'il faut modifier

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/02/2012, 20h51
  2. Réponses: 8
    Dernier message: 19/07/2010, 15h50
  3. [XL-2003] renommer une feuille par la valeur contenue dans une cellule
    Par mimilll dans le forum Excel
    Réponses: 2
    Dernier message: 20/06/2009, 00h06
  4. Suppression d'une ligne en fonction du contenu d'une case
    Par Iloon dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/06/2008, 13h43
  5. Réponses: 1
    Dernier message: 28/03/2008, 21h37

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