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 :

Boucle pour remplir cellule vide d'une boucle variable [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 37
    Points : 11
    Points
    11
    Par défaut Boucle pour remplir cellule vide d'une boucle variable
    Bonjour :

    J'aurai besoin de votre aide car je suis un peu bloquée!

    En faite je voudrai remplir les cellules vide de ma colonne A par des 0 sachant que il faut remplir que jusqu'à la dernière ligne non vide de la colonne B. Aussi la longueur de ces colonnes peuvent changer. (j'espère avoir été claire)

    Pour l'instant j'ai écrit quelque chose mais ça marche pas.

    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
    Sub remplir()
     
    Dim derlig As Long
    Dim selection As Range
    derlig = Range("B" & Rows.Count).End(xlUp).Row
    selection = Range("A1:derlig")
    Dim Cel As Range
        For Each Cel In selection
            If IsEmpty(Cel) Then
                Cel = 0
            Else
                Cel = xlNone
            End If
        Next Cel
     
    End Sub
    Voilà,
    Merci de votre aide!

    Laura

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Bonjour,

    Essaie comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        Dim nbLignes As Long
     
        nbLignes = Cells(Rows.Count, "A").End(xlUp).Row
     
        Range("A2:A" & nbLignes).SpecialCells(xlCellTypeBlanks).Select
        Selection.Formula = "0"
    NB: c'est plutôt rare que j'utilise les Select/Selection, mais dans ce cas-ci, c'est intéressant...

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 37
    Points : 11
    Points
    11
    Par défaut
    Bonjour, et merci beaucoup d'avoir répondu !

    Mais y a deux problème avec votre code:

    Le premier vient que ça efface mes cellules non vide.

    et deuxième: la dernière ligne de la colonne A est la dernière ligne de la colonne B Pour être plus explicite

    1       2
    *       2
    *       2
    *       2
    5       2
    *       2
    *       2
    1       2
    *       2
    *       2
    *       2
    *       2
    *
    *
    *
    *
    avec * = vide

    Du coup en gros dans la colonne A le remplissage de 0 s'arrête au niveau de la dernière ligne de la deuxième colonne.

  4. #4
    Invité
    Invité(e)
    Par défaut Bonjour,
    l'enregistreur de macro aurait donné ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Macro1()
    '
    ' Macro1 Macro
    '
     
    '
     Range("A1:A7").Select
        Selection.Replace What:="", Replacement:="0", LookAt:=xlWhole, SearchOrder _
            :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
    End Sub
    en la retravaillant un peut tu aurais obtenus ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub test()
    Dim R As Range
    Set R = ActiveSheet.UsedRange
    ReplaceVide R.Range(R(1, 1), R(R.Rows.Count, 1))
    End Sub
     
    Sub ReplaceVide(Plage As Range)
    Plage.Replace What:="", Replacement:="0", LookAt:=xlWhole, SearchOrder _
            :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
    End Sub

  5. #5
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Si tu veux avoir la dernière ligne de la colonne B, change le A pour B, ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nbLignes = Cells(Rows.Count, "A").End(xlUp).Row
    Pour ce qui est d'effacer tes données, je ne comprends pas (?)
    Le code sélectionne les cellules vides en A seulement et leur met un 0...
    Ça ne devrait pas toucher aux autres cellules.

  6. #6
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 37
    Points : 11
    Points
    11
    Par défaut
    Parmi merci beaucoup ! En fait en cherchant tout à l'heure c'est moi qui avait une erreur ! ça marche nickel !

    et merci de votre aide aussi rdurupt


    Je marque le problème comme résolu !

  7. #7
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    une bulle au cerveau...

    Sans les Select(ion) (qui devraient toujours être évités...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Dim nbLignes As Long
     
        nbLignes = Cells(Rows.Count, "B").End(xlUp).Row
     
        Range("A2:A" & nbLignes).SpecialCells(xlCellTypeBlanks) = 0
    Et la méthode Replace est aussi efficace....

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/04/2014, 10h39
  2. Réponses: 6
    Dernier message: 18/02/2014, 20h39
  3. Remplir les cellules vides dans une boucle
    Par zoltar_x dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/11/2011, 18h35
  4. Comment réaliser une boucle pour remplir un tableau
    Par LVChatel dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 03/04/2009, 11h20
  5. [ImageMagick] Une boucle pour ImageLine ?
    Par isa150183 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 26/11/2005, 18h41

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