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 :

Boucle non fonctionnelle et question à choix dans macro. [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2012
    Messages : 69
    Points : 23
    Points
    23
    Par défaut Boucle non fonctionnelle et question à choix dans macro.
    Bonjour,

    j'ai un soucis sur une petite macro et je pense deviner que cela bien du format des deux cellules à comparer mais le résultat est que ma boucle n'est pas fonctionnelle....
    Je lui demande de tester la valeur de deux cellules et si celles ci sont identiques on passe à un "Exit Sub"... Dans mon cas, le script de déroule jusqu'à la fin même si les conditions sont remplies :-(

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        Dim Lig, DerLig As Integer
        '-------------------------------------------------------------------------------------------------
        '-------- Vérification si G4 existe déjà dans la colonne A pour éviter les doublons --------------
        '-------------------------------------------------------------------------------------------------
        DerLig = Range("A65536").End(xlUp).Row
        For Lig = 17 To DerLig
        If Range("A" & Lig).Value = Range("G4").Value Then Exit Sub '<-- NE FONCTIONNE PAS....
        Next Lig
    et je voudrai que dans cette macro, on demande à l'utilisateur de choisir une réponse parmi 3 choix et que cette valeur complète une des cellules définit et là, je n'y arrive pas du tout :-(

    PS : Ce script devra sans doute est adaptable pour fonctionner sous Google Docs....
    Fichiers attachés Fichiers attachés

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 199
    Points : 319
    Points
    319
    Par défaut
    Bonjour,

    Les probleme provient peut etre des espaces.

    Essayez en mettant trim devant chaque Range

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If trim(Range("A" & Lig).Value) = trim(Range("G4").Value) Then Exit Sub
    et pour le choix un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    laValeur = InputBox("Veuillez faire un choix:" & vbCrLf & "1-Choix 1:" & vbCrLf & "2-choix 2:" & vbCrLf & "3-choix 3", Choix)
     
    MsgBox laValeur

  3. #3
    Membre averti
    Homme Profil pro
    Ctrl Gestion
    Inscrit en
    Octobre 2011
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ctrl Gestion
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2011
    Messages : 177
    Points : 363
    Points
    363
    Par défaut
    Bonjour Akhlan, goldstar, le Forum

    J'ai testé comme cela et cela fait sortir de la boucle en cas d'égalité

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If CStr(Range("A" & Lig).Value) = CStr(Range("G4").Value) Then Exit Sub '<-- CA FONCTIONNE....
    Slts

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2012
    Messages : 69
    Points : 23
    Points
    23
    Par défaut
    C'est super, merci à vous deux

    Voici le Résultat
    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
    Sub Rota()
        Dim Lig, DerLig As Integer
        Dim Zone As String
     
        '-------------------------------------------------------------------------------------------------
        '-------- Vérification si G4 existe déjà dans la colonne A pour éviter les doublons --------------
        '-------------------------------------------------------------------------------------------------
        DerLig = Range("A65536").End(xlUp).Row
        For Lig = 17 To DerLig
        If CStr(Range("A" & Lig).Value) = CStr(Range("G4").Value) Then GoTo ErrorZone
        Next Lig
     
        '-------------------------------------------------------------------------------------------------
        '-------- Insertion d'une ligne 17 "vierge" ------------------------------------------------------
        '-------------------------------------------------------------------------------------------------
        Rows("17:17").Select
        Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        With Selection.Interior
            .Pattern = xlNone
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With
        With Selection.Font
            .ColorIndex = xlAutomatic
            .TintAndShade = 0
        End With
        Selection.Font.Bold = False
     
        '-------------------------------------------------------------------------------------------------
        '-------- Import des données issue des caculs fait en E, F et G ----------------------------------
        '-------------------------------------------------------------------------------------------------
        Zone = InputBox("Veuillez faire un choix (1,2 ou 3):" & vbCrLf & "3/11/5 - Mettre 1" & vbCrLf & "3/11/1 - Mettre 2" & vbCrLf & "3/12/9 - Mettre 3", Choix)
        Range("A17").Value = Range("G4").Value
        If Zone = 1 Then Range("B17").Value = "Zone 3/11/5"
        If Zone = 2 Then Range("B17").Value = "Zone 3/11/1"
        If Zone = 3 Then Range("B17").Value = "Zone 3/12/9"
        Range("C15").Formula = "=F4 & "" prépare un siège ("" & F6 & "") contre ""  & F5 & "" ("" & G5 & "")"" "
        Range("C17").Value = Range("C15").Value
        Range("D17").Value = Range("F8").Value
        Range("E17").Value = Range("E9").Value
        Range("F17").Value = Range("F9").Value
     
        Range("C4").Select
     
        Exit Sub
     
    ErrorZone:
        MsgBox "Ce rapport de rotation existe déjà..."
        End Sub
    Il ne me "reste plus qu'à" traduire ça au format Google Doc.... Là, ça va être moins facile....
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. Checkbox pour choix dans Macro
    Par The Saint dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 25/01/2013, 16h31
  2. [XL-2010] tableau choix dans Macro
    Par The Saint dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/02/2012, 17h12
  3. [XL-2010] Choix de boucle dans macro
    Par fidecourt dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/01/2011, 17h12
  4. [Visual Web] Rowset non fonctionnel dans un dropdown
    Par tsyfar dans le forum NetBeans
    Réponses: 4
    Dernier message: 13/05/2008, 19h14
  5. question sur TableDestination dans macro TCD
    Par sash6 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/06/2007, 15h31

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