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 :

Condition non respecté dans listbox [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 128
    Points : 83
    Points
    83
    Par défaut Condition non respecté dans listbox
    Bonjour je reviens au forum pour un énième question

    Je bloque sur un if dans ma Listbox je tourne dans tout les sens depuis une heure je vois pas... Je post au cas où ça sauterait aux yeux à vous autres expert de la prog.

    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
    52
    53
    Private Sub UserForm_Initialize()
     
        Dim Cell As Range
        Dim Unique As New Collection
        Dim Valeur As Range
        Dim IX As Integer
     
    Set Flcd = ThisWorkbook.Worksheets("CC2012")
    Set SDC = ThisWorkbook.Worksheets("Suivi de commande")
    Set Fl = ThisWorkbook.Worksheets("facturation prévisionnelle")
     
    Set rancom = Application.InputBox("Sélectionnez une plage !", "Sélection de cellules", Type:=8)
     
    If Not rancom Is Nothing Then lNx = rancom.Row
                                                                            Fl.Activate
    ' Remplissage de la feuille de facturation prévisionnelle.
    Range("A1").Select
    If Range("A2").Value <> "" Then ActiveCell.End(xlDown).Select
    ActiveCell.Offset(1, 0).Select
          randes = ActiveCell.Row
          ActiveCell.Offset(0, 1).Value = Flcd.Cells(lNx, 8)            'Nom du client
          ActiveCell.Offset(0, 2).Value = rancom.Value                  'Numéro de commande
          ActiveCell.Offset(0, 3).Value = Flcd.Cells(lNx, 9)            'Nom du chantier
          ActiveCell.Offset(0, 4).Value = Flcd.Cells(lNx, 5)            'statut(en cours/soldé)
          ActiveCell.Offset(0, 5).Value = Date                          'Date
          Flcd.Cells(lNx, 1).Copy Fl.Cells(randes, 1)                   'Numéro de Devis
     
     
    Me.ListBox1.MultiSelect = fmMultiSelectMulti
     
    For IX = 3 To SDC.Range("A" & SDC.Rows.Count).End(xlUp).Row
                                                                            SDC.Activate
            On Error Resume Next
        'boucle sur les cellules de la colonne A
     
        For Each Cell In SDC.Range("A3:A" & IX)
     
        If SDC.Range(Cells(Cell.Row, 18)).Value = Flcd.Cells(lNx, 1) And _
        SDC.Range(Cells(Cell.Row, 2)).Value = rancom.Value And _
        SDC.Range(Cells(Cell.Row, 15)).Value = "" Then
            'Stocke les données dans une collection
            '(La collection n'accepte que des données uniques et permet donc de filtrer facilement les doublons).
            Unique.Add Cell, CStr(Cell)
            End If
        Next Cell
     Next
            On Error GoTo 0
     
        'Boucle sur le contenu de la collection pour alimenter la ListBox
        For Each Valeur In Unique
            Me.ListBox1.AddItem Valeur
        Next Valeur
    End Sub
    C'est à ce niveau que ça n'écoute pas ce qu'on lui dit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        If SDC.Range(Cells(Cell.Row, 18)).Value = Flcd.Cells(lNx, 1) And _
        SDC.Range(Cells(Cell.Row, 2)).Value = rancom.Value And _
        SDC.Range(Cells(Cell.Row, 15)).Value = "" Then
            'Stocke les données dans une collection
            '(La collection n'accepte que des données uniques et permet donc de filtrer facilement les doublons).
            Unique.Add Cell, CStr(Cell)
            End If
    il ne veut pas de ces conditions il ne les suit pas pourquoi ? Si Quelqu'un peut m'aider.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 128
    Points : 83
    Points
    83
    Par défaut
    bon j'ai essayé cela mais rien y fait
    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
    For IX = 3 To SDC.Range("A" & SDC.Rows.Count).End(xlUp).Row
                                                                            SDC.Activate
            On Error Resume Next
    'Conditions de boucle
        If SDC.Cells(IX, 18).Value = Flcd.Cells(lNx, 1) And _
        SDC.Cells(IX, 2).Value = rancom.Value And _
        SDC.Cells(IX, 15).Value = "" Then
    'boucle sur les cellules de la colonne A
            For Each Cell In SDC.Range("A3:A" & IX)
    'Stocke les données dans une collection
    '(La collection n'accepte que des données uniques et permet donc de filtrer facilement les doublons).
                Unique.Add Cell, CStr(Cell)
            Next Cell
        End If
     Next
    Je n'arrive pas à imposer les conditions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If SDC.Cells(IX, 18).Value = Flcd.Cells(lNx, 1) And _
        SDC.Cells(IX, 2).Value = rancom.Value And _
        SDC.Cells(IX, 15).Value = "" Then
    à Je comprends pas... la nuit porte conseil

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 128
    Points : 83
    Points
    83
    Par défaut
    c'est bon j'ai enfin trouvé je poste pour ceux que ça intéresserait un code qui marche.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
                                                                   SDC.Activate
    For IX = 3 To SDC.Range("A" & SDC.Rows.Count).End(xlUp).Row
            On Error Resume Next
    'Définir la plage conditionnée
     
        If SDC.Cells(IX, 18) = Flcd.Cells(lNx, 1) And _
        SDC.Cells(IX, 2).Value = rancom.Value And _
        SDC.Cells(IX, 15).Value = "" Then
    'Stocke les données dans une collection
    '(La collection n'accepte que des données uniques et permet donc de filtrer facilement les doublons).
                Unique.Add SDC.Cells(IX, 1), CStr(SDC.Cells(IX, 1))
        End If
     Next

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

Discussions similaires

  1. Caractères non respectés dans une saisie de formulaire.
    Par varilux56 dans le forum Langage
    Réponses: 6
    Dernier message: 04/10/2014, 11h28
  2. Condition non respectée
    Par benito25 dans le forum Langage
    Réponses: 2
    Dernier message: 01/04/2014, 15h21
  3. [PHP 5.0] Condition non vérifiée dans un "if"
    Par agnaou dans le forum Langage
    Réponses: 2
    Dernier message: 16/03/2009, 10h29
  4. Condition macro non respectée
    Par pascal913 dans le forum Access
    Réponses: 12
    Dernier message: 04/07/2006, 12h49
  5. Réponses: 16
    Dernier message: 01/06/2006, 21h37

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