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 :

Remplissage occasionnel des cellules vides


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
    Décembre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 18
    Par défaut Remplissage occasionnel des cellules vides
    Bonjour à tous,

    J'ouvre un fichier csv sous excel, avec une macro. Délimiteur point-virgule, puis ajustement des largeurs de colonnes. Tout est OK.

    Je veux remplir les cellules de la colonne C avec les cellules de la colonne D, ligne par ligne, si les cellules de la colonne C sont vides : Exemple Contenu de D8 en C8. Le but est de supprimer la colonne D, après récupération des éléments.



    Le petit bout de code ne fonctionne pas (ActiveCell.Value = " "). J'ai essayé avec 0, IsEmpty,...Rien

    Quelqu'un peut-il me dépanner, sachant que j'ai d'autres feuilles, avec d'autres colonnes à traiter de la même façon, toutes dans le même classeur.

    Merci

  2. #2
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Bonjour,
    si tu met " " hébien ta chaine de caractère n'est pas vide il y a un espace du coup ton programe va vouloir un espace.
    essaye ActiveCell.Value = "" sans l'esapce entre les deux. Un espace est différent de rien

    autre chose activecell(1,2) n'a pas de sens regarde l'aide sur offset

    encore une remarque regarde l'aide sur cells
    utilise cells(i,2) au lieu de ton activecell

    Et au lieu de faire un while avec incrémentation tu peu faire un for

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for i = 1 to lastrow
    if cells(i,2)="" then
    cells(i,2)=cells(i3)
    end if
    nest i
    met les bonnes colonnes

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 18
    Par défaut
    Merci pour la rapidité.

    ...mais cela ne fonctionne pas :

    le if cells(i,3) = "" ne renvoie jamais au then (pas à pas détaillé). Avec ou sans espace entre les quotes. En revanche, si je rentre quelque chose, pour tester, là, cela fonctionne. Le problème est donc bien la valeur de la cellule vide

    La boucle for est effectivement plus simple.

  4. #4
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Question tu es sur que ta cellule est vide? il n'y a pas un espace un tab ou un autre caractèr bizar?
    ps vérifie bien la valeur de i également on ne sait jamais

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 18
    Par défaut
    Citation Envoyé par Krovax Voir le message
    Question tu es sur que ta cellule est vide? il n'y a pas un espace un tab ou un autre caractèr bizar?
    En principe, c'est vide, puisque cela n'existait pas...C'est un fichier csv de la forme :
    xxx;xxx;;xxx;xxx;;;;xxx

    Lors de l'ouverture avec Excel, les points-virgules servent de délimiteurs de colonne. Donc entre 2 point-virgule, il n'y a rien...Avec un msgbox, il n'y a rien. Mais comment savoir si c'est réellement vide.

    De toutes façons, même enregistré au format Excel, cela ne change rien.

  6. #6
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Essaye
    Si tu as autre chose que 0 c'est qu'il y a effectivement un caractère
    Sinonn tu as essayé sur un fichier que tu rempli a la main sur quelque ligne? Savoir si le problème viens bien de l'importation

Discussions similaires

  1. [VBA-E] Comment faire une boucle lorsqu'il y a des cellules vides
    Par Annick.w dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 01/02/2007, 23h39
  2. Réponses: 19
    Dernier message: 06/07/2006, 16h35
  3. [VBA-E]Remplir des cellules vides par des 0
    Par Tartenpion dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/03/2006, 14h58
  4. [VBA-E]supprimer des cellules vide
    Par garn dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 13/02/2006, 12h56
  5. Problemes avec des cellules vides
    Par arsgunner dans le forum ASP
    Réponses: 7
    Dernier message: 14/06/2004, 09h42

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