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 :

While non vide prend la dernière valeur [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
    Développeur Web
    Inscrit en
    Octobre 2018
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2018
    Messages : 25
    Par défaut While non vide prend la dernière valeur
    Bonjour a tous,
    ma nouvelle topic est en lien avec celle la https://www.developpez.net/forums/d1...llule-cellule/, j'ai plus ou moins réussis a faire ce que je voulais.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    i = 6
            While Cells(i, 13) <> ""
                Cells(i, 13).Select
                Selection.Copy
                Range("C5").Select
                Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                :=False, Transpose:=False
                'ActiveWindow.SelectedSheets.PrintOut copies:=1, Collate:=True,
                'IgnorePrintAreas:=False
                ActiveWorkbook.SaveAs Filename:= _
                "C:\TEST" & "\" & Format(Date, "yyyymmdd") & "\" & Format(Date, "yyyymmdd") & "." & Range("C5").Text & ".xlsm", FileFormat _
                :=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
                i = i + 1
            Wend
    J'ai ceci comme code, qui doit prendre toutes les cellules non vide a partir de la ligne 6 de la 13 eme colonne, ça fait bien son travail sauf quand ça arrive à une cellule vide, il enregistre quand même avec la cellule vide mais après s’arrête, est ce qu'il me manque quelque chose?

    Cordialement ThisioOo

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par ThisioOo Voir le message
    j'ai plus ou moins réussis a faire ce que je voulais.
    Une petite correction "esthétique" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    i = 6
    While Cells(i, 13) <> ""
        Range("C5").Value = Cells(i, 13).Value
        ActiveWorkbook.SaveAs Filename:="C:\TEST" & "\" & Format(Date, "yyyymmdd") & "\" & Format(Date, "yyyymmdd") & "." & Range("C5").Text & ".xlsm", _
        FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
        i = i + 1
    Wend
    quand ça arrive à une cellule vide, il enregistre quand même avec la cellule vide mais après s’arrête
    Es-tu sûr que cette cellule est réellement vide ?
    Ne contiendrait-elle pas un espace, un 0 ou autres caractères de ce genre ?

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2018
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2018
    Messages : 25
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Es-tu sûr que cette cellule est réellement vide ?
    Ne contiendrait-elle pas un espace, un 0 ou autres caractères de ce genre ?
    Je confirme qu'elle est bien vide

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par ThisioOo Voir le message
    Je confirme qu'elle est bien vide
    Comment l'as-tu vérifié ? Juste en visuel ?
    Je connais plus d'une dizaines de caractères qui ne se voient pas mais qui répondent faux à un test de cellule vide.

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    Bonjour
    J'ai ceci comme code, qui doit prendre toutes les cellules non vide a partir de la ligne 6 de la 13 eme colonne, ça fait bien son travail sauf quand ça arrive à une cellule vide, il enregistre quand même avec la cellule vide mais après s’arrête, est ce qu'il me manque quelque chose?
    dis moi tu aurais pas des cellules vides parmis des cellules pleine par hasard??
    dans ce cas la c'est tout le concept qui est a revoir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Le PasteSpecial xlPasteValue me fait penser qu'éventuellement cette cellule contiendrait une formule renvoyant "".
    A vérifier...

  7. #7
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2018
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2018
    Messages : 25
    Par défaut
    Merci a tous pour vos réponses

    Citation Envoyé par Menhir Voir le message
    Comment l'as-tu vérifié ? Juste en visuel ?
    Je connais plus d'une dizaines de caractères qui ne se voient pas mais qui répondent faux à un test de cellule vide.
    Menhir elle est vide car j'ai sélectionner la cellule et j'ai appuyé sur suppr

    Citation Envoyé par patricktoulon Voir le message
    dis moi tu aurais pas des cellules vides parmis des cellules pleine par hasard??
    dans ce cas la c'est tout le concept qui est a revoir
    Patrick je n'ai pas de de cellule vide parmi mes cellules pleine

    Citation Envoyé par pijaku Voir le message
    Bonjour,

    Le PasteSpecial xlPasteValue me fait penser qu'éventuellement cette cellule contiendrait une formule renvoyant "".
    A vérifier...
    Pijaku, que veux tu dire par la?

    Citation Envoyé par Thautheme Voir le message
    Encore perdu une occasion de me taire...
    Thautheme aucun problème, c'est déjà gentil d'essayer

  8. #8
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2018
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2018
    Messages : 25
    Par défaut
    Bonjour à tous,

    Je me permet de relancer le sujet car j'ai l'impression qu'il est un peu passé à la trappe, peut être que je me trompe mais je préfère me rassurer en faisant ça

    Merci à tous

  9. #9
    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,

    Peut-être avec : Do While... Loop

  10. #10
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2018
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2018
    Messages : 25
    Par défaut
    Citation Envoyé par Thautheme Voir le message
    Bonjour le fil, bonjour le forum,

    Peut-être avec : Do While... Loop
    Bonjour, Thautheme, ca ne change rien avec Do While... Loop

  11. #11
    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
    Encore perdu une occasion de me taire...

  12. #12
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut
    Bonjour à tous,

    Citation Envoyé par Thautheme Voir le message
    Encore perdu une occasion de me taire...
    Je suis pas d'accord Thautheme La boucle While ... wend étant la plus lente (et c'est pas moi qui l'ai dit en premier) il est normal de proposé je l'aurai fait si tu l'avais pas fait

    @ ThisioOo

    Peux-tu nous envoyé une capture écran de ton fichier qui illustre ton problème au vu de la discution il semble qu'un visuel (de type capture écran) soit devenu nécessaire

  13. #13
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 680
    Par défaut
    Citation Envoyé par ThisioOo Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
            While Cells(i, 13) <> ""
    J'ai ceci comme code, qui doit prendre toutes les cellules non vide a partir de la ligne 6 de la 13 eme colonne, ça fait bien son travail sauf quand ça arrive à une cellule vide, il enregistre quand même avec la cellule vide mais après s’arrête
    Le code fait exactement ce que tu lui demande, tant que la cellule n'est pas vide fait tes instruction
    Ce qui est différent de "prendre toutes les cellules non vide"
    Pour ça il vaudrait mieux, à mon avis faire une boucle for de la ligne 6 à la dernière ligne, plus un si pour ne faire les instructions que si la cellule n'est pas vide

  14. #14
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    A essayer dans un nouveau classeur tout propre, tout vide...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub Demo()
    Dim I&
    Range("M6:M10").Value = "titi"
    I = 6
    While Cells(I, 13).Value <> ""
       Cells(I, 14).Value = "toto"
       I = I + 1
    Wend
    End Sub

  15. #15
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2018
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2018
    Messages : 25
    Par défaut
    Bonjour Pijaku,

    Citation Envoyé par pijaku Voir le message
    A essayer dans un nouveau classeur tout propre, tout vide...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub Demo()
    Dim I&
    Range("M6:M10").Value = "titi"
    I = 6
    While Cells(I, 13).Value <> ""
       Cells(I, 14).Value = "toto"
       I = I + 1
    Wend
    End Sub
    Je suis presque sur d'avoir compris ce qui doit se passer cependant je suis un peu moins sur de savoir pourquoi ça ne marche pas :o
    Cordialement ThisioOo

  16. #16
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par halaster08 Voir le message
    Le code fait exactement ce que tu lui demande, tant que la cellule n'est pas vide fait tes instruction
    Ce qui est différent de "prendre toutes les cellules non vide"
    Pour ça il vaudrait mieux, à mon avis faire une boucle for de la ligne 6 à la dernière ligne, plus un si pour ne faire les instructions que si la cellule n'est pas vide
    j'avais mal lu mais se suis tooooootalement d'accord avec toi halaster08

  17. #17
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2018
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2018
    Messages : 25
    Par défaut
    Merci à tous pour vos réponses
    Je vais essayé les différentes méthodes proposées

    Je vous montre quand même pour avoir visuel:

    Nom : ExcelLien.png
Affichages : 1078
Taille : 12,1 Ko

  18. #18
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2018
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2018
    Messages : 25
    Par défaut
    Bonjour Halaster,

    Citation Envoyé par halaster08 Voir le message
    Le code fait exactement ce que tu lui demande, tant que la cellule n'est pas vide fait tes instruction
    Ce qui est différent de "prendre toutes les cellules non vide"
    Pour ça il vaudrait mieux, à mon avis faire une boucle for de la ligne 6 à la dernière ligne, plus un si pour ne faire les instructions que si la cellule n'est pas vide
    C'est vrai que ça pourrait se faire cependant je n'ai pas de dernière ligne pour la boucle for, du coup je mets une dernière ligne assez loin et la condition if se chargera du reste? ça ne risque pas de ralentir?

    Cordialement ThisioOo

  19. #19
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Nous en sommes à la deuxième page de cette discussion, 21 messages que nous tournons en rond.
    Sans ton classeur original, personne ne saura te répondre.

    Peux-tu nous le glisser en pj à ce forum?
    Il faut que tu l'anonymise le cas échéant...

  20. #20
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2018
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2018
    Messages : 25
    Par défaut
    Dans mon classeur, il y a une seule feuille que je peux montrer
    Et c'est le module 1 qu'il faut regarder

    test.xlsm

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [XL-2010] Automatiser calcul pour toute cellule non vide- calcul avec des valeurs sur feuilles différentes
    Par Superdébutante dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/04/2016, 14h53
  2. Réponses: 2
    Dernier message: 31/07/2015, 08h21
  3. Réponses: 4
    Dernier message: 04/02/2015, 08h20
  4. Réponses: 1
    Dernier message: 30/01/2012, 22h34
  5. [XL-2007] Dernière valeur non vide dans un ensemble de cellules
    Par romromain dans le forum Excel
    Réponses: 2
    Dernier message: 13/06/2011, 15h17

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