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 :

VBA - Problèmes If Else If


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Homme Profil pro
    Chargé de pilotage Opé
    Inscrit en
    Décembre 2024
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de pilotage Opé
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2024
    Messages : 8
    Par défaut VBA - Problèmes If Else If
    Bonjour à tous, j'ai déjà pas mal utilisé ce forum pour trouver des solutions à mes problèmes sur VBA, et cette fois-ci c'est moi qui écrit ...!

    J'ai voulu modifier une de mes macros avec un code que je pensais simple mais je n'arrive pas à le faire fonctionner correctement...
    Je veux bien de votre aide si le cœur vous en dit ...

    * Mon code complet permet d'aller remplir un onglet précis d'un fichier choisit, il fonctionne très bien sans ajouts des quelques lignes de codes
    Il fonctionne avec un Boolean (Si faux, prends les valeurs et remplit le fichier de destination // Si vrai, passe au suivant)


    J'ai voulu rajouter une petite complexité en encastrant un If dans un autre If mais cela ne fonctionne pas
    Pour faire simple, selon les 2 premières lettres de ma référence, je veux faire correspondre un type de contrat (Exemple, référence AL000001 commence par "AL" donc le type de contrat est LOA)


    Voici la section qui pose problème : (quelques variables ont été définies plus haut)
    Les rajouts qui coincent :

    Valcell (ligne 6)
    Ligne 17 à 27
    Ligne 39

    Merci beaucoup !




    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    Sheets("sheet1").Select                 'Selectionne la feuille "sheet1"
     
    Dim L As Long
    L = Sheets("sheet1").Range("A1048576").End(xlUp).Row
     
    Dim datecycle As Date, client As String, montant As Double, ref As String, transmis As Boolean, Valcell As String    'Définit les variables
     
        For i = 2 To L
            transmis = Sheets("sheet1").Range("N" & i).Value     'Vérifie si la valeur de la cellule de la colonne N est égale à VRAI ou FAUX
     
            If transmis = False Then                        'Si FAUX, stocke les valeurs des cellules des colonnes C,A et I et G dans les variables
                datecycle = Sheets("sheet1").Range("C" & i).Value
                client = Sheets("sheet1").Range("A" & i).Value
                montant = Sheets("sheet1").Range("I" & i).Value
                ref = Sheets("sheet1").Range("G" & i).Value
     
                    If Left(ref.Value, 2) = "AL" Then
                        Valcell.Value = "LOA"
                    ElseIf Left(ref.Value, 2) = "AC" Then
                        Valcell.Value = "Crédit"
                    ElseIf Left(ref.Value, 2) = "AF" Then
                        Valcell.Value = "LLD"
                    ElseIf Left(ref.Value, 2) = "AD" Then
                        Valcell.Value = "Collab Toy (autre)"
                    Else
                        Valcell.Value = "Non défini"
                    End If
     
                Workbooks(fichier_destination).Activate        'Active le fichier de destination
                Sheets(onglet_destination).Select
     
                Dim L2 As Long
                L2 = Sheets(onglet_destination).Range("A1048576").End(xlUp).Row + 1   'Définit la dernière ligne du sheet1
     
                Sheets(onglet_destination).Range("C" & L2).Value = datecycle         'Renseigne les valeurs des variables dans les cellules correspondantes
                Sheets(onglet_destination).Range("B" & L2).Value = client
                Sheets(onglet_destination).Range("D" & L2).Value = montant
                Sheets(onglet_destination).Range("A" & L2).Value = ref
                Sheets(onglet_destination).Range("E" & L2).Value = Valcell
     
                Workbooks(monfichier).Activate    'Active le fichier source
                Sheets("sheet1").Select
                Sheets("sheet1").Range("N" & i).Value = True
     
        Else
            GoTo suivant   'Si c'est pas FAUX (VRAI), passe à la ligne suivante
     
        End If
     
    suivant:
        Next i

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Valcell et Ref étant des variables de type String, il n'y a pas de propriété value

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If Left(ref, 2) = "AL" Then
                        Valcell = "LOA"
     
    'Etc...

  3. #3
    Membre habitué
    Homme Profil pro
    Chargé de pilotage Opé
    Inscrit en
    Décembre 2024
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de pilotage Opé
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2024
    Messages : 8
    Par défaut
    Merci !!
    Ca marche parfaitement ...!

    Je vais relire mes bases du langage Excel

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

Discussions similaires

  1. [XL-2010] VBA Fonction If Else
    Par Stéphane_MAN dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 08/10/2020, 11h48
  2. Vba checkbox if else
    Par domeli dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 29/01/2015, 14h39
  3. [XL-2010] VBA code IF - Else IF - Else
    Par Guixmix dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/05/2014, 21h09
  4. Aide sur VBA condition If /else if/end if
    Par mederick dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 25/04/2014, 17h48
  5. [XL-2007] VBA, If...Then...Else
    Par orliko dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/10/2012, 10h15

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