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 :

probl bouche if then else [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 97
    Par défaut probl bouche if then else
    bonjour

    Voila, je veux à travers ce code tester si le contenu d une cellule contient une abbréviation ET si l abbréviation correspond afficher le nom complet
    je bloque un peu

    merci d avance

    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
    19
    20
    21
    Sub contpart()
     
    Dim entrecu As String
    Dim entpay As String
     
    If Worksheets(Nom).Range("C14: D14").Value = "DEUT" Then Set entrecu = "DEUTSCHE BANK FFT"
    Else: Set entrecu = Nothing
    End If
    If Worksheets(Nom).Range("C14: D14").Value = "CITINY" Then Set entrecu = "CITIBANK NEW YORK"
    Else: Set entrecu = Nothing
    End If
     
    If Worksheets(Nom).Range("C15: D15").Value = "DEUT" Then Set entpay = "DEUTSCHE BANK FFT"
    Else: Set entpay = Nothing
    End If
    If Worksheets(Nom).Range("C15: D15").Value = "CITINY" Then entpay = "CITIBANK NEW YORK"
    Else: Set entpay = Nothing
    End If
     
     
    End Sub

  2. #2
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut
    Déjà quelques corrections

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Set entrecu = "DEUTSCHE BANK FFT"
    Le Set est utilisé uniquement lorsque tu souhaites definir un Objet.
    L'explication est simple
    Prenons un Objet Range, il représente une cellule.

    Si tu veux changer la valeur contenu dans la cellule, tu mets
    Tu as également le droit d'écrire
    VBA par défaut Utilisera la propriété Value de l'objet Range (c'est comme ça, c'est une règle)

    Maintenant tu veux utiliser une variable Range
    Et tu veux que cette variable représente la cellule A1
    Si tu as suivi, ici VBA ayant affaire a des objet range va utilisé leur propriété par defaut (Value) et va donc interpreter ton code ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonRange.value = Range("A1").value
    Et donc pan erreur, puisque MonRange est pas defini et que de toutes facons, c'est pas ce que tu voulais faire.
    Pour éviter ça, on va expliquer a VBA qu'il faut qu'il travail au niveau Object
    Et donc on utilises Set pour le prevenir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set MonRange = Range("A1")
    A partir de maintenant, tout ce que tu fera subir a MonRange, c'est comme si tu le faisais directement sur Range("A1").


    Autre chose, .value peut effectivement representé le contenu de plusieurs cellule,mais dans ce cas, les valeur seront stocké en memoire sous forme de tableau. Il n'est donc pas possible de lui demander de verifier toutes les valeur du tableau simplement en lui disant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A1:A8").value = "Bonjour"
    lui il voit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UnTableauDe8Case = "Bonjour"
    Je vais modifier ton code directement pour te donner une solution, il en existe d'autre que tu trouveras sur le forum en cherchant un peu.

    ++
    Qwaz
    Je reviens avec ton code modifié

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 97
    Par défaut
    je comprends mieux je me complique trop la vie en faite ....
    pourtant je l ai lu c est ça le pire ....



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim ENTRECU As String
    Dim ENTPAY As String
     
    If Worksheets(Nom).Range("C14:D14") = "DEUT" Then
    ENTRECU = "DEUTSCHE BANK FFT"
    Else: ENTRECU = ""
    End If
    If Worksheets(Nom).Range("C14:D14") = "CITINY" Then
    ENTRECU = "CITIBANK NEW YORK"
    Else: ENTRECU = ""
    End If

  4. #4
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut

    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
    19
    20
    Sub test()
    Dim TheCell As Range
     
    'on recherche dans cet interval de cellule si un mot existe
    'On va donc boucler sur chaque cellule et tester son contenu
    For Each TheCell In Worksheets(Nom).Range("C14:D15")
        'For va executer le code autant de fois que de cellule contenu dans l'interval C14:D14
        'A chaque execution TheCEll representera la cellule pointé par la boucle For
        '1ere execution thecell correspond a C14, 2eme execution TheCell correspond a D14
        '3eme execution TheCEll correspond a C15, 4eme execution TheCell correspond a D15
     
        'on regarde le contenu et on choisi ce que l'on doit mettre a la place en fonction de celui ci
        If TheCell.Value = "DEUT" Then
            'On change la valeur contenu dans TheCell
            TheCell.Value = "DEUTSCHE BANK FFT"
        ElseIf TheCell.Value = "CITINY" Then
            TheCell.Value = "CITIBANK NEW YORK"
        End If
    Next ' on retourne au For et TheCell represente la cellule suivante
    End Sub
    Il est important si tu veux apprendre le vba a connaitre les base, je te suggère donc de lire des tutoriels sur les fonctions de base du VBA, tu en trouveras ici Partie "Programmation"

    Bonne continuation
    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 97
    Par défaut
    merci

    beaucoup oui en effet je vais relire tout ça ... il faut q ça soit ma 2nd langue

    bonne suite

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

Discussions similaires

  1. [Débutant] if...then...else
    Par jive dans le forum ASP
    Réponses: 5
    Dernier message: 16/09/2005, 15h11
  2. [TagLib] Structure if then else
    Par mush_H dans le forum Taglibs
    Réponses: 5
    Dernier message: 19/07/2005, 16h31
  3. If Then Else
    Par Piout dans le forum MS SQL Server
    Réponses: 13
    Dernier message: 24/02/2005, 17h09
  4. IF THEN ELSE imbriqués
    Par nuke_y dans le forum Oracle
    Réponses: 2
    Dernier message: 15/11/2004, 15h57
  5. [CR 7] [débutante] pb avec if then else
    Par xs_nady dans le forum Formules
    Réponses: 8
    Dernier message: 28/05/2004, 16h36

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