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 :

Supprimer les zero d'une sélection


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2010
    Messages : 26
    Par défaut Supprimer les zero d'une sélection
    Bonjour,

    J'ai juste un petit soucis en vba.

    J'ai une selection composée de chiffres.
    Celle selection ressemble à ça :

    0 0 0 0 0 12 13 14 15 16 17 18 19 0 0 0 0 0 0 0 0 CASE VIDE

    Et ce que je veux faire c'est supprimer les zéro ( en rouge) jusqu'à la premiere case vide.

    Pourriez m'indiquer comment je peux faire ?

    Merci pour votre aide

    J'ai commencé VBA il y deux jours.

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonjour,

    tu peu être plus clair sur ce que tu appelle une sélection ? tu sélectionne quoi ? comment?

  3. #3
    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

    Le code ci dessous traite la première ligne de la feuille

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim c As Integer
     
    'Derniere colonne utilisée
    c = Rows(1).End(xlToRight).Column
     
    'Pour chaque cellule on verifie si =0
    For c = Rows(1).End(xlToRight).Column To 1 Step -1
        If Cells(1, c).Value = 0 Then
            Cells(1, c).Value = ""
        Else
            'si pas = 0 alors on sort de la boucle
            Exit For
        End If
    Next c

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2010
    Messages : 26
    Par défaut
    Merci ça me donne une bonne piste.

    Pour détecter la premirère case sur laquelle il faut agir je vais faire ce test :

    Si (Valeur de la case courante Different de zero) ET (que la case juste après a droite est égale à zéro)

    alors je récupère l'adresse de la case a zero et je rajoute ton code ensuite qui va supprimer les 0.

    ça se tient ?

  5. #5
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Ou alors, tu pars de la droite et tu effaces la cellules tant qu'il y a des 0

  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
    Hello Zebreloup,

    Ou alors, tu pars de la droite et tu effaces la cellules tant qu'il y a des 0
    C'est ce que fait ma proposition (si ce n'est une remise a blanc et non une suppression)

  7. #7
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Pas exactement, si tu regardes bien son exemple, il ne veut effacer (ou mettre à blanc, pour moi c'était pareil, un abus de langage de ma part) que les 0 de droite. D'où un While plutôt qu'un For

    En reprenant ton code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim c As Range
     
    'Derniere colonne utilisée
    Set c = Rows(1).End(xlToRight)
     
    'Pour chaque cellule on verifie si =0
    Do While c.Value = 0 And c.Column >= 1
      c.Value = ""
      If c.Column > 1 Then Set c = c.Offset(0, -1)
    Loop

Discussions similaires

  1. Réponses: 9
    Dernier message: 06/11/2007, 12h36
  2. Supprimer les marges dans une page html
    Par Furius dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 12/01/2006, 04h41
  3. [vbexcel]Comment supprimer les doublons dans une combobox?
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 24/11/2005, 11h12
  4. Réponses: 9
    Dernier message: 27/10/2005, 13h20
  5. [DEBUTANT]Supprimer les espaces pour une requete
    Par tripper.dim dans le forum Oracle
    Réponses: 4
    Dernier message: 12/10/2005, 16h04

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