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 :

[E-03] Macro : Comment ne rien faire si cellule vide ?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 15
    Par défaut [E-03] Macro : Comment ne rien faire si cellule vide ?
    Bonjour a tous,

    j'ai une question qui je le pense est simple pour les non-débutants (a la différence de moi, qui suis débutant)

    J'ai une petite macro qui m'arrondi des valeurs a 2 décimales
    Le problème est que cette macro bug quand une des cases de la plage est vide

    Je pense qu'il suffit de rajouter une petite ligne pour dire a excel de ne rien faire si la cellule est vide mais je ne sais pas quoi rajouter !


    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
    17
    18
    Sub test()
     
    arrondir ("e14:e3000")
     
    End Sub
     
     
    Sub arrondir(plage As String)
     
    Dim c
     
    For Each c In Range(plage)
     
            c.Value = Round(c.Value, 2)
     
        Next c
     
    End Sub





    A mon avis ca n'est pas grand chose mais j'ai besoin de votre aide !!

    D'avance merci


    Alexandre

  2. #2
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    bonjour documentation le forum as tu essaye comme cela !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For Each c In Range(plage)
     
    if c <>"" then c.Value = Round(c.Value, 2)
     
    Next c
     
    End Sub
    j ai pas mis le debut de ta macro a rajouter bonjour gorfael

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut documentation et le forum
    Pense à utiliser les balises de code (#)
    Une proposition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub test()
    arrondir ("e14:e3000")
    End Sub
     
    Sub arrondir(plage As String)
    Dim c as range
    For Each c In Range(plage)
         if not isempty(c) then c = Round(c, 2)
         'si non(C est vide) alors
         'if isnumeric(c) then c = Round(c, 2)
         'si c est un nombre alors
    Next c
    End Sub
    A+

  4. #4
    Membre averti
    Inscrit en
    Février 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 15
    Par défaut
    Salut a tous et merci de vos réponses

    malheureusement j'ai toujours le même message d'erreur...

    "incompatibilité de type"

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut documentation et le forum
    malheureusement j'ai toujours le même message d'erreur...
    Où ? quand ? Comment ?
    On ne sait pas ce que tu as testé.
    Que contient réellement ta cellule (pas ce qu'elle affiche, son contenu)?
    A+

  6. #6
    Membre averti
    Inscrit en
    Février 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 15
    Par défaut
    En fait je viens de créer un nouveau classeur et de lancer la macro que tu viens de me donner et ca marche
    une colonne avec 4 cellules dont une vide
    Exemple
    A1 = 1.56899
    A2 =
    A3 = 1.525522
    A4 = 1.2

    Avec un nouveau classeur et quelques valeurs simples ca marche


    Pourtant, dans mon gros classeurs, avec des centaines de lignes et des centaines de colonnes ca ne fonctionne pas

    En gros j'ai pas mal de décimales pour chaque valeurs contenues dans les cellules (les cellules contiennent des valeurs)
    Et j'ai quelques cellules vides
    Et je ne comprend toujours pas pourquoi mais ma macro n'aime pas les cases vides (alors que je viens de le faire pour un petit fichier et que ca marche !)

    le message d'erreur quand je lance la macro est "incompatibilité de type"

  7. #7
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    rebonjour le fil le forum as tu essaye de declarer ta variable en variant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub arrondir(plage As String)
    en
    Sub arrondir(plage As variant)

  8. #8
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut documentation et le forum
    tu demandes de résoudre un problème et ça marche
    Si le problème existe toujours sur ton classeur => c'est que ça ne vient pas de la partie donnée à vérifier.
    ça vient d'ailleurs, mais comme on a aucune idée de ton problème réel et aucune donnée... on va pas pouvoir t'aider!

    Donnes nous les vraies macros si tu veux de l'aide
    A+

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

Discussions similaires

  1. [XL-2007] Macro pour masquer les colonnes avec cellules vides
    Par Cirrus22 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/12/2009, 19h50
  2. comment faire une cellule vide ?
    Par filigane dans le forum Excel
    Réponses: 13
    Dernier message: 03/08/2007, 11h12
  3. Réponses: 8
    Dernier message: 17/08/2006, 16h16
  4. Root qui ne peux plus rien faire :'(
    Par Smortex dans le forum Administration
    Réponses: 2
    Dernier message: 27/09/2004, 20h13
  5. Comment puis je faire cette effet...
    Par wikers dans le forum OpenGL
    Réponses: 5
    Dernier message: 12/06/2004, 20h40

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