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 :

Améliorer une recherche sous conditions


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Employé
    Inscrit en
    Août 2017
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Employé

    Informations forums :
    Inscription : Août 2017
    Messages : 30
    Points : 25
    Points
    25
    Par défaut Améliorer une recherche sous conditions
    Bonjour,

    Le fichier ci-joint très spécifique permet d'afficher dans la LISTBOX1 :

    les valeurs de la colonne N (FL7) qui ont 0 dans la colonne V (FL7) et 1 dans la colonne X (FL7) et qui n'ont pas de doublons dans la colonne F (FL2) mais doivent avoir 9999 dans la colonne S (FL2).

    Actuellement, je ne connais pas d'autre moyen que de passer par une feuille temporaire FL4.

    Je souhaiterais savoir s'il est possible de s'en passer et d’alléger ainsi le code ?

    J'espère avoir été clair dans mes explications

    Merci à toutes et tous pour votre aide.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre chevronné Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Points : 1 971
    Points
    1 971
    Par défaut
    Bonjour,

    C'est tout à fait faisable, à coup de dictionnaire par exemple.

    Pourriez vous poster votre code et capture d'écrans, peu de membre ouvrent les fichiers joints, sécurité oblige.

    Bav,

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Employé
    Inscrit en
    Août 2017
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Employé

    Informations forums :
    Inscription : Août 2017
    Messages : 30
    Points : 25
    Points
    25
    Par défaut
    Oui bien sûr


    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    Public FL2 As Worksheet
    Public FL4 As Worksheet
    Public FL7 As Worksheet
    Public plage_FL2 As Range
    Public plage_FL7 As Range
     
    Sub declarations()
     
        Set FL2 = ThisWorkbook.Worksheets("FL2")
        Set FL4 = ThisWorkbook.Worksheets("FL4")
        Set FL7 = ThisWorkbook.Worksheets("FL7")
        Set plage_FL2 = FL2.Range("F1:F" & FL2.Range("F" & Rows.Count).End(xlUp).Row)
        Set plage_FL7 = FL7.Range("A1:Z" & FL7.Range("A" & Rows.Count).End(xlUp).Row)
     
    End Sub
     
    ************************************************************************************************************
    Function derligne(ByVal Feuille As Worksheet) As Long
     
        derligne = Feuille.Cells(Rows.Count, 1).End(xlUp).Row
     
    End Function
     
    ************************************************************************************************************
     
    Sub lancement()
        UserForm1.Show
    End Sub
     
    ************************************************************************************************************
     
    Private Sub UserForm_Initialize()
     
        Call declarations
     
        With Me.Listbox1
            .ColumnHeads = False
            .ColumnCount = 8
            .ColumnWidths = "0;135;0;0;0;0;0;0"
        End With
     
        FL4.Cells.Clear
     
        i = 1
     
        For j = 1 To derligne(FL7)
     
            If FL7.Cells(j, 1) <> "" And FL7.Cells(j, 22) = 0 And FL7.Cells(j, 24) = 1 Then
     
                With FL4
     
                    .Cells(i, 1).Value = FL7.Cells(j, 13)
                    .Cells(i, 2).Value = FL7.Cells(j, 1)
                    .Cells(i, 3).Value = FL7.Cells(j, 14)
                    .Cells(i, 4).Value = FL7.Cells(j, 15)
                    .Cells(i, 5).Value = FL7.Cells(j, 16)
                    .Cells(i, 6).Value = FL7.Cells(j, 17)
                    .Cells(i, 7).Value = FL7.Cells(j, 18)
                    .Cells(i, 8).Value = FL7.Cells(j, 19)
     
                End With
     
                i = i + 1
     
            End If
     
        Next j
     
    End Sub
     
    ************************************************************************************************************
     
    Private Sub CommandButton1_Click()
     
        Dim valeur As String
        Dim trouve As Range
     
        For i = 1 To derligne(FL4)
     
            valeur = FL4.Cells(i, 3).Value
     
            If Application.WorksheetFunction.CountIf(plage_FL2, valeur) = 1 Then
     
                Set trouve = plage_FL2.Cells.find(valeur, lookin:=xlValues, lookat:=xlWhole)
     
                If Not trouve Is Nothing Then
     
                    If FL2.Cells(trouve.Row, 19).Value = 9999 Then
     
                        Me.Listbox1.AddItem
                        Me.Listbox1.List(Me.Listbox1.ListCount - 1, 0) = FL4.Cells(i, 2).Value
                        Me.Listbox1.List(Me.Listbox1.ListCount - 1, 1) = valeur
                        Me.Listbox1.List(Me.Listbox1.ListCount - 1, 2) = FL4.Cells(i, 3).Value
                        Me.Listbox1.List(Me.Listbox1.ListCount - 1, 3) = FL4.Cells(i, 4).Value
                        Me.Listbox1.List(Me.Listbox1.ListCount - 1, 4) = FL4.Cells(i, 5).Value
                        Me.Listbox1.List(Me.Listbox1.ListCount - 1, 5) = FL4.Cells(i, 6).Value
                        Me.Listbox1.List(Me.Listbox1.ListCount - 1, 6) = FL4.Cells(i, 7).Value
                        Me.Listbox1.List(Me.Listbox1.ListCount - 1, 7) = FL4.Cells(i, 8).Value
     
                    End If
     
                End If
     
            End If
     
        Next i
     
    End Sub

Discussions similaires

  1. Réponses: 10
    Dernier message: 07/07/2012, 17h11
  2. [PHP-JS] Actualisation d'une page sous condition
    Par oceane751 dans le forum Langage
    Réponses: 7
    Dernier message: 28/01/2007, 17h55
  3. [Excel] Calcul d'une somme sous condition
    Par netsabes dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/08/2006, 16h09
  4. Afficher une image sous condition
    Par Chmog dans le forum BIRT
    Réponses: 5
    Dernier message: 28/07/2006, 12h11
  5. Réponses: 8
    Dernier message: 14/01/2006, 15h17

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