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

Excel Discussion :

Utilisation du If - End If


Sujet :

Excel

  1. #1
    Candidat au Club
    Femme Profil pro
    Marketing
    Inscrit en
    Avril 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Marketing

    Informations forums :
    Inscription : Avril 2015
    Messages : 10
    Points : 4
    Points
    4
    Par défaut Utilisation du If - End If
    Bonjour,

    Je suis plus que novice en VBA d'où la question très primaire que je vais poser.

    J'aimerais que :
    si dans ma cellule AG309 est indiqué un nombre
    alors dans ma cellule AG310 remonte automatiquement le chiffre 1.

    En regardant des posts dans différents forums, j'ai trouvé des lignes de code que j'ai essayé d'adapter à mon besoin et voici ce que j'ai écrit :


    If Not IsEmpty(Range("AG309")) Then
    Range("AG310").Select
    Range("AG310") = "1"

    Else

    Range("AG310") = ""


    Comme vous pouvez vous en douter, ça ne fonctionne pas.

    Pouvez-vous m'aider svp.

    Cordialement,

    Laura

  2. #2
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    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 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    là tu demandes (Si c'est pas vide alors je met 1 en cellule AG310)

    je pense que "IsNumeric" serait plus adapté

    sinon quelques remarques

    - personellement à : je préfère
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("AG310").Value = "1"
    - lorque tu mets "1" c'est que tu mets un chiffre 1 en mode texte. Est-ce bien ce que tu veux ?
    - Utilise les Balises Code (le #) c'est plus propre lorque l'on pose un Code

    Tu modifies tu essayes et tu dis si cela marche ou pas

    A bientôt
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 761
    Points : 28 619
    Points
    28 619
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pour tester un nombre c'est IsNumeric
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     If IsNumeric(Range("A1").Value) Then
       Range("b1") = 1
      Else
      Range("B1") = ""
     End If
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     If IsNumeric(Range("A1").Value) Then Range("b1") = 1 Else Range("B1") = ""
    Si l'instruction If est sur une ligne le End If ne peut pas être placé.

    ]EDIT]
    Désolé Igloobel je n'avais pas vu ta réponse au moment de l'envoi de la mienne
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  4. #4
    Candidat au Club
    Femme Profil pro
    Marketing
    Inscrit en
    Avril 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Marketing

    Informations forums :
    Inscription : Avril 2015
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    Merci beaucoup pour vos retours rapides mais ça ne fonctionne pas Je ne dois surement pas bien écrire ce que vous m'avez communiqué.

    Le 1 s'affiche bien dans la cellule AG310 mais de façon constante, pas quand AG309 est quantifiée et c'est pour moi la seule condition pour faire remonter le 1 dans AG310.

    Merci pour votre aide

    Laura

  5. #5
    Membre actif Avatar de lionel86500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2013
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 144
    Points : 214
    Points
    214
    Par défaut
    Bonjour,

    quand tu dis que ca ne fonctionne pas, c'est quand ta cellule A1 est vide.
    et a ce moment la il la considère comme numérique.
    si c'est ce cas prends ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If IsNumeric(Range("A1").Value) And Range("A1").Value <> "" Then
       Range("b1") = 1
      Else
      Range("B1") = ""
     End If
    Lionel

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 761
    Points : 28 619
    Points
    28 619
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Dans ce cas, il faut faire deux tests. L'un pour vérifier si la cellule a un contenu numérique et l'autre pour vérifier qu'il y a au moins un caractère
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     If IsNumeric(Range("A1").Value) And Len(Range("A1").Value) > 0 Then
       Range("b1") = 1
      Else
       Range("B1") = ""
     End If
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  7. #7
    Expert éminent sénior 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
    Points : 32 866
    Points
    32 866
    Par défaut
    A mon avis, pour obtenir ce que tu recherches, tu devrais plutôt faire une fonction personnalisée.

    Je vais reprendre le code de Philippe (excuse-moi Lionel, ton code est aussi bon, j'ai tiré à "pile ou face" ) en le simplifiant.

    Dans un module VBA, tu tapes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Function MonNum(Source As Range) As Variant
    MonNum = ""
    If IsNumeric(Source.Value) And Len(Source.Value) > 0 Then MonNum = 1
    End Function
    Ensuite, tu écris en B1
    Et tu auras exactement ce que tu souhaites et en dynamique. C'est à dire que si tu changes le contenu de A1, B1 se mettra tout seul à jour.

    Et, cerise sur le gâteau, tu pourras l'utiliser cette fonction pour connaitre l'état (numérique ou non) de n'importe quelle cellule et récupérer le résultat dans n'importe quelle cellule, sans avoir à toucher au code, juste en changeant la référence dans la fonction MonNum que tu pourras placer n'importe où.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  8. #8
    Candidat au Club
    Femme Profil pro
    Marketing
    Inscrit en
    Avril 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Marketing

    Informations forums :
    Inscription : Avril 2015
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Merci beaucoup à vous tous pour vos réponses.
    Grace à votre aide, ça fonctionne
    Bonne journée,
    Laura

  9. #9
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 761
    Points : 28 619
    Points
    28 619
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    On pouvait faire le test avec une simple formule d'excel et dans ce cas de figure, il ne faut pas vérifier si la cellule est vide car elle n'est pas considérée alors comme numérique. Seul bémol une date est considérée comme une valeur numérique.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

Discussions similaires

  1. Réponses: 6
    Dernier message: 15/04/2010, 10h58
  2. [Wavelet Toolbox] Utilisation d'une boucle FOR-END
    Par bestorchidee dans le forum MATLAB
    Réponses: 8
    Dernier message: 05/01/2009, 20h09
  3. Utilisation de .end
    Par Ragmaxone dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/09/2008, 08h32
  4. Réponses: 1
    Dernier message: 22/11/2007, 22h52
  5. [D7] Utilisation de try...except...end
    Par gtaman dans le forum Langage
    Réponses: 14
    Dernier message: 03/11/2007, 00h27

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