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

Excel Discussion :

Chercher numéro dans une plage de cellules non contiguës [XL-MAC 2016]


Sujet :

Excel

  1. #21
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par ginofalaci Voir le message
    A quoi peuvent servir ces fonctions ? Histoire de mourir moins bête... mais même avec des explications ce ne sera pas certain.

  2. #22
    Membre à l'essai
    Homme Profil pro
    Musicien
    Inscrit en
    Août 2018
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Musicien

    Informations forums :
    Inscription : Août 2018
    Messages : 34
    Points : 13
    Points
    13
    Par défaut
    C'est un tableau de tournoi double KO (avec un coté perdante et un coté gagnant )
    On pourrait faire une présentation plus linéaire qui arrangerait les formules, mais ce serait aussi moins agréable visuellement.

    Nom : Capture d’écran 2018-09-16 à 11.54.12.png
Affichages : 632
Taille : 104,2 Ko

  3. #23
    Membre à l'essai
    Homme Profil pro
    Musicien
    Inscrit en
    Août 2018
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Musicien

    Informations forums :
    Inscription : Août 2018
    Messages : 34
    Points : 13
    Points
    13
    Par défaut
    Bon voilà le code que j'aimerais, (en fait c'est la moitié, j'en fais un 2ème pour afficher le 2ème joueur dans une autre case, donc avec d'autres Offset)
    malheureusement il y a une erreur de syntaxe dans la 2ème ligne 'Dim Cellule As Range' et je ne vois pas quoi, il y a-t il trop d'arguments?


    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
    Function TrouverValeurV5(ByVal ValeurATrouver As Integer) As Variant
     
    Dim Cellule As Range, Premiertour As Range, TourGagnant1 As Range, TourGagnant2 As Range, TourPerdant1et2 As range, TourPerdant3 As Range,
     
        Application.Volatile
     
        TrouverValeurV5 = ""
     
        With ActiveSheet
     
    Set Premiertour = .Range("V5,V9,V15,V19,V26,V30,V36,V40,V53,V57,V63,V63,V67,V74,V78,V84,V88")
    Set TourGagnant1 = .Range("Y7,Y17,Y28,Y38,Y55,Y65,Y76,Y86")
    Set TourGagnant2 = .Range("AB12,AB33,AB60,AB81")
    Set TourPerdant1et2 = .Range("O7,O17,O28,O38,O55,O65,O76,O86,K9,K19,K30,K40,K57,K67,K78,K88")
    Set TourPerdant3 = .Range("G14,G35,D19,D40")
     
             For Each Cellule In Premiertour
                    If Cellule = ValeurATrouver Then
                    TrouverValeurV2 = Cellule.Offset(-1, -2)
                       Exit Function
                    End If
                Next Cellule
                For Each Cellule In TourGagnant1
                    If Cellule = ValeurATrouver Then
                    TrouverValeurV2 = Cellule.Offset(-2, -2)
                    End If
                Next Cellule
        For Each Cellule In TourGagnant2
                    If Cellule = ValeurATrouver Then
                    TrouverValeurV2 = Cellule.Offset(-5, -2)
                       Exit Function
                    End If
                Next Cellule
                For Each Cellule In TourPerdant1et2
                    If Cellule = ValeurATrouver Then
                    TrouverValeurV2 = Cellule.Offset(2, -2)
                    End If
                Next Cellule
                 For Each Cellule In TourPerdant3
                    If Cellule = ValeurATrouver Then
                    TrouverValeurV2 = Cellule.Offset(2, -5)
                    End If
                Next Cellule
     
        End With
     
    Set Premiertour = Nothing
    Set TourGagnant1 = Nothing
    Set TourGagnant2 = Nothing
    Set TourPerdant1et2 = Nothing
    Set TourPerdant3 = Nothing
     
    End Function

  4. #24
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par ginofalaci Voir le message
    Je vais à la pharmacie de garde pour récupérer une boite d'aspirine...

  5. #25
    Membre à l'essai
    Homme Profil pro
    Musicien
    Inscrit en
    Août 2018
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Musicien

    Informations forums :
    Inscription : Août 2018
    Messages : 34
    Points : 13
    Points
    13
    Par défaut

    Désolé, j'avoue ne pas connaitre du tout le VBA...
    On ne peut pas écrire autant de plages?

  6. #26
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par ginofalaci Voir le message
    On ne peut pas écrire autant de plages?
    Je regarde et te tiens au courant.

  7. #27
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par ginofalaci Voir le message
    malheureusement il y a une erreur de syntaxe dans la 2ème ligne 'Dim Cellule As Range'
    Dim Cellule As Range, Premiertour As Range, TourGagnant1 As Range, TourGagnant2 As Range, TourPerdant1et2 As range, TourPerdant3 As Range,
    C'est la virgule à la fin qui fait foirer.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim Cellule As Range, Premiertour As Range, TourGagnant1 As Range, TourGagnant2 As Range, TourPerdant1et2 As range, TourPerdant3 As Range

  8. #28
    Membre à l'essai
    Homme Profil pro
    Musicien
    Inscrit en
    Août 2018
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Musicien

    Informations forums :
    Inscription : Août 2018
    Messages : 34
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par Eric KERGRESSE Voir le message
    C'est la virgule à la fin qui fait foirer.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim Cellule As Range, Premiertour As Range, TourGagnant1 As Range, TourGagnant2 As Range, TourPerdant1et2 As range, TourPerdant3 As Range
    C'est super, j'ai quelques erreurs d'adresse à corriger dans mes Cellule.Offset mais cela fonctionne!
    Une dernière question, est que d'enlever le 'As Variant' pour ne laisser que 'As Integuer" (je ne sais pas comment il faudrait l'écrire et si je ne dis pas de bêtise, pourrait alléger le tout?

  9. #29
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par ginofalaci Voir le message
    Une dernière question, est que d'enlever le 'As Variant' pour ne laisser que 'As Integer" (je ne sais pas comment il faudrait l'écrire et si je ne dis pas de bêtise, pourrait alléger le tout?
    Si tu types ta fonction avec Integer, tu ne pourras récupérer qu'un entier. Est-ce cela que tu veux ? Si oui, il te faut initialiser ta fonction à 0 au lieu de ""

    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
    Function TrouverValeurV5(ByVal ValeurATrouver As Integer) As Integer
     
    Dim Cellule As Range, Premiertour As Range, TourGagnant1 As Range, TourGagnant2 As Range, TourPerdant1et2 As range, TourPerdant3 As Range
     
        Application.Volatile
     
        TrouverValeurV5 = 0
     
        With ActiveSheet
     
    Set Premiertour = .Range("V5,V9,V15,V19,V26,V30,V36,V40,V53,V57,V63,V63,V67,V74,V78,V84,V88")
    Set TourGagnant1 = .Range("Y7,Y17,Y28,Y38,Y55,Y65,Y76,Y86")
    Set TourGagnant2 = .Range("AB12,AB33,AB60,AB81")
    Set TourPerdant1et2 = .Range("O7,O17,O28,O38,O55,O65,O76,O86,K9,K19,K30,K40,K57,K67,K78,K88")
    Set TourPerdant3 = .Range("G14,G35,D19,D40")
     
             For Each Cellule In Premiertour
                    If Cellule = ValeurATrouver Then
                    TrouverValeurV2 = Cellule.Offset(-1, -2)
                       Exit Function
                    End If
                Next Cellule
                For Each Cellule In TourGagnant1
                    If Cellule = ValeurATrouver Then
                    TrouverValeurV2 = Cellule.Offset(-2, -2)
                    End If
                Next Cellule
        For Each Cellule In TourGagnant2
                    If Cellule = ValeurATrouver Then
                    TrouverValeurV2 = Cellule.Offset(-5, -2)
                       Exit Function
                    End If
                Next Cellule
                For Each Cellule In TourPerdant1et2
                    If Cellule = ValeurATrouver Then
                    TrouverValeurV2 = Cellule.Offset(2, -2)
                    End If
                Next Cellule
                 For Each Cellule In TourPerdant3
                    If Cellule = ValeurATrouver Then
                    TrouverValeurV2 = Cellule.Offset(2, -5)
                    End If
                Next Cellule
     
        End With
     
    Set Premiertour = Nothing
    Set TourGagnant1 = Nothing
    Set TourGagnant2 = Nothing
    Set TourPerdant1et2 = Nothing
    Set TourPerdant3 = Nothing
     
    End Function
    Sinon, quel est le problème ?

  10. #30
    Membre à l'essai
    Homme Profil pro
    Musicien
    Inscrit en
    Août 2018
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Musicien

    Informations forums :
    Inscription : Août 2018
    Messages : 34
    Points : 13
    Points
    13
    Par défaut
    Ok je testerais, mais je ne me rends pas compte si ça peut être significatif ou non, la différence.
    Sinon je n'ai pas de problème j'ai corrigé mes Offset et tout fonctionne parfaitement.
    Je vous remercie infiniment, je suis très heureux d'avoir à mettre cela en place, je repasserais si j'ai un souci car je dois adapter cela à plusieurs tableaux différends, mais j'ai le code et est compris comment l'adapter, donc c'est un problème résolu pour moi.

  11. #31
    Membre à l'essai
    Homme Profil pro
    Musicien
    Inscrit en
    Août 2018
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Musicien

    Informations forums :
    Inscription : Août 2018
    Messages : 34
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par Eric KERGRESSE Voir le message

    Sinon, quel est le problème ?
    Rebonjour, J'ai extrapolé un peu, assez loin, ça fonctionnait très bien, mais là ça bloque, serais-je allé trop loin?
    Ou est-ce une chose que j'ai mal écrite, ou interdite, je n'arrive pas à trouver quoi. En tout cas il me fait une "VALEUR!
    Est-ce qu'on ne peut déclarer plusieurs plages de la sorte? Ca fonctionnait bien avec 'activesheets", Mais j'aurais aimé pouvoir définir des plages différentes selon les feuilles.
    Merci


    Edit: Erreur de copier coller dans le code

    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
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    Function TrouverValeurV7(ByVal ValeurATrouver As Integer) As Variant
     
    Dim Cellule As Range, T32T1 As Range, T32TG1 As Range, T32TG2 As Range, T32P1ET2 As Range, T32TP3ET4 As Range, T32T14Finale As Range, T32T12Finale As Range, T32Finale As Range, T16T1 As Range, TT16TG1 As Range, T16TG2 As Range, T16TP1ET2 As Range, T16TP3ET4 As Range, T16T14Finale8 As Range, T16T12Finale8 As Range, T16Finale8 As Range, Tour12Finale4 As Range, T16Finale4 As Range, T161KO1 As Range, T161KOTG1 As Range, T161KOTG2 As Range, T161KOFinale As Range
     
        Application.Volatile
     
    TrouverValeurV7 = ""
     
    Set T32T1 = Sheets("TABLEAU 32-8").Range("V5,V9,V15,V19,V26,V30,V36,V40,V53,V57:V63,V63,V67,V74,V78,V84,V88")
    Set T32TG1 = Sheets("TABLEAU 32-8").Range("Y7,Y17,Y28,Y38,Y55,Y65,Y76,Y86")
    Set T32TG2 = Sheets("TABLEAU 32-8").Range("AB12,AB33,AB60,AB81")
    Set T32P1ET2 = Sheets("TABLEAU 32-8").Range("O7,O17,O28,O38,O55,O65,O76,O86,K9,K19,K30,K40,K57,K67,K78,K88")
    Set T32TP3ET4 = Sheets("TABLEAU 32-8").Range("G14,G35,D19,D40")
    Set T32T14Finale = Sheets("TABLEAU 32-8").Range("H102,H108,H114,H120")
    Set T32T12Finale = Sheets("TABLEAU 32-8").Range("K105,K117")
    Set T32Finale = Sheets("TABLEAU 32-8").Range("O111")
     
    Set T16T1 = Sheets("TABLEAU 16-4").Range("V5,V9,V15,V19,V26,V30,V36,V40,V53,V57:V63,V63,V67,V74,V78,V84,V88")
    Set TT16TG1 = Sheets("TABLEAU 16-4").Range("Y7,Y17,Y28,Y38,Y55,Y65,Y76,Y86")
    Set T16TG2 = Sheets("TABLEAU 16-4").Range("AB12,AB33")
    Set T16TP1ET2 = Sheets("TABLEAU 16-4").Range("O7,O17:O19,O28,O38,L9,L19,L30,L40")
    Set T16TP3ET4 = Sheets("TABLEAU 16-4").Range("G14,G35,D19,D40")
    Set T16T14Finale8 = Sheets("TABLEAU 16-4").Range("H56,H64,H68,H74")
    Set T16T12Finale8 = Sheets("TABLEAU 16-4").Range("K59,K717")
    Set T16Finale8 = Sheets("TABLEAU 16-4").Range("N65")
    Set T1612Finale4 = Sheets("TABLEAU 16-4").Range("E895,E101")
    Set T16Finale4 = Sheets("TABLEAU 16-4").Range("H95")
     
    Set T161KO1 = Sheets("TABLEAU 16-4").Range("C5,C9,C15,C19,C25,C29,C35,C39,C54,C58,C64,C68")
    Set T161KOTG1 = Sheets("TABLEAU 16-4").Range("F7,F17,F27,F37,F56,F66")
    Set T161KOTG2 = Sheets("TABLEAU 16-4").Range("I12,I32,I61")
    Set T161KOFinale = Sheets("TABLEAU 16-4").Range("L22")
     
     
             For Each Cellule In T32T1
                    If Cellule = ValeurATrouver Then
                       TrouverValeurV7 = Cellule.Offset(-1, -2)
                       Exit Function
                    End If
                Next Cellule
                For Each Cellule In T32TG1
                    If Cellule = ValeurATrouver Then
                       TrouverValeurV7 = Cellule.Offset(-2, -2)
                    End If
                Next Cellule
        For Each Cellule In T32TG2
                    If Cellule = ValeurATrouver Then
                       TrouverValeurV7 = Cellule.Offset(-5, -2)
                       Exit Function
                    End If
                Next Cellule
                For Each Cellule In T32P1ET2
                    If Cellule = ValeurATrouver Then
                       TrouverValeurV7 = Cellule.Offset(2, -2)
                    End If
                Next Cellule
                 For Each Cellule In T32TP3ET4
                    If Cellule = ValeurATrouver Then
                       TrouverValeurV7 = Cellule.Offset(-5, 2)
                    End If
                Next Cellule
        For Each Cellule In T32T14Finale
                    If Cellule = ValeurATrouver Then
                       TrouverValeurV7 = Cellule.Offset(-1, -2)
                       Exit Function
                    End If
                Next Cellule
    For Each Cellule In T32T12Finale
                    If Cellule = ValeurATrouver Then
                       TrouverValeurV7 = Cellule.Offset(-3, -2)
                       Exit Function
                    End If
                Next Cellule
    For Each Cellule In T32Finale
                    If Cellule = ValeurATrouver Then
                       TrouverValeurV7 = Cellule.Offset(-6, -2)
                       Exit Function
                    End If
                Next Cellule
     
                         For Each Cellule In T16T1
                    If Cellule = ValeurATrouver Then
                       TrouverValeurV7 = Cellule.Offset(-1, -2)
                       Exit Function
                    End If
                Next Cellule
                For Each Cellule In TT16TG1
                    If Cellule = ValeurATrouver Then
                       TrouverValeurV7 = Cellule.Offset(-2, -2)
                    End If
                Next Cellule
        For Each Cellule In T16TG2
                    If Cellule = ValeurATrouver Then
                       TrouverValeurV7 = Cellule.Offset(-5, -2)
                       Exit Function
                    End If
                Next Cellule
                For Each Cellule In T16TP1ET2
                    If Cellule = ValeurATrouver Then
                       TrouverValeurV7 = Cellule.Offset(-2, -2)
                    End If
                Next Cellule
                 For Each Cellule In T16TP3ET4
                    If Cellule = ValeurATrouver Then
                       TrouverValeurV7 = Cellule.Offset(-5, 2)
                    End If
                Next Cellule
            For Each Cellule In T16T14Finale8
                    If Cellule = ValeurATrouver Then
                       TrouverValeurV7 = Cellule.Offset(-1, -2)
                       Exit Function
                    End If
                Next Cellule
            For Each Cellule In T16T12Finale8
                    If Cellule = ValeurATrouver Then
                       TrouverValeurV7 = Cellule.Offset(-3, -2)
                       Exit Function
                    End If
                Next Cellule
            For Each Cellule In T16Finale8
                    If Cellule = ValeurATrouver Then
                       TrouverValeurV7 = Cellule.Offset(-6, -2)
                       Exit Function
                    End If
                Next Cellule
                For Each Cellule In T1612Finale4
                    If Cellule = ValeurATrouver Then
                       TrouverValeurV7 = Cellule.Offset(-3, -2)
                       Exit Function
                    End If
                Next Cellule
                For Each Cellule In T16Finale4
                    If Cellule = ValeurATrouver Then
                       TrouverValeurV7 = Cellule.Offset(-6, -2)
                       Exit Function
                    End If
     
                Next Cellule
                For Each Cellule In T161KO1
                    If Cellule = ValeurATrouver Then
                       TrouverValeurV7 = Cellule.Offset(-1, -2)
                       Exit Function
                    End If
                Next Cellule
             For Each Cellule In T161KOTG1
                    If Cellule = ValeurATrouver Then
                       TrouverValeurV7 = Cellule.Offset(-3, -2)
                       Exit Function
                    End If
                Next Cellule
                For Each Cellule In T161KOTG2
                    If Cellule = ValeurATrouver Then
                       TrouverValeurV7 = Cellule.Offset(-6, -2)
                       Exit Function
                    End If
                Next Cellule
                For Each Cellule In T161KOFinale
                    If Cellule = ValeurATrouver Then
                       TrouverValeurV7 = Cellule.Offset(-10, -2)
                       Exit Function
                    End If
                Next Cellule
     
     
     
    Set T32T1 = Nothing		
    Set T32TG1 = Nothing		
    Set T32TG2 = Nothing		
    Set T32P1ET2 = Nothing	
    Set T32TP3ET4 = Nothing	
    Set T32T14Finale = Nothing	
    Set T32T12Finale = Nothing	
    Set T32Finale = Nothing	
     
    Set T16T1 = Nothing		
    Set TT16TG1 = Nothing	
    Set T16TG2 = Nothing		
    Set T16TP1ET2 = Nothing	
    Set T16TP3ET4 = Nothing	
    Set T16T14Finale8 = Nothing
    Set T16T12Finale8 = Nothing
    Set T16Finale8 = Nothing	
    Set T1612Finale4 = Nothing	
    Set T16Finale4 = Nothing	
     
    Set T161KO1 = Nothing	
    Set T161KOTG1 = Nothing	
    Set T161KOTG2 = Nothing	
    Set T161KOFinale = Nothing
     
    End Function

  12. #32
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par ginofalaci Voir le message
    Bonjour,

    Vérifie la syntaxe des lignes 23 et 24.

  13. #33
    Membre à l'essai
    Homme Profil pro
    Musicien
    Inscrit en
    Août 2018
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Musicien

    Informations forums :
    Inscription : Août 2018
    Messages : 34
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par Eric KERGRESSE Voir le message
    Bonjour,

    Vérifie la syntaxe des lignes 23 et 24.
    Bonjour,
    Désolé j'ai copié le mauvais code, mais les noms des plages de 9 à 32 n'étaient pas à jour. Ca m'a permis de corriger.
    Ca à l'air de marcher, merci.

  14. #34
    Membre à l'essai
    Homme Profil pro
    Musicien
    Inscrit en
    Août 2018
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Musicien

    Informations forums :
    Inscription : Août 2018
    Messages : 34
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par Eric KERGRESSE Voir le message
    Bonjour,

    Désolé pour le VBA :

    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
     
     
    Function TrouverValeur(ByVal ValeurATrouver As Integer) As Variant
     
    Dim Cellule As Range, AireDeRecherche As Range
     
        Application.Volatile
     
        Set AireDeRecherche = Sheets("Feuil2").Range("X5,X9,X15,X19,X26,X30,X36,X40,AA7,AA17,AA28,AA38,P7,P17,P28,P38,L9,L19,L30,L40,AD12,AD33,H14,H35,D18,D39")
     
        TrouverValeur = ""
        For Each Cellule In AireDeRecherche
            If Cellule = ValeurATrouver Then TrouverValeur = Cellule.Offset(-1, -1)
        Next Cellule
     
        Set AireDeRecherche = Nothing
     
    End Function
    Bonjour, je refais appel, pour une fonction tellement simple que je n'arrive pas à la trouver, mais je me plonge dans le VBA dès que j'ai du temps!
    Je cherche à retourner la valeur cherchée, comme dans ce premier exemple que vous m'avez proposé, mais sans offset.
    Simplement savoir si la valeur "*" se trouve dans la 'Range' de cellules non contigues. la valeur cherchée est unique, et un nombre entier.
    Je cherche savoir si il y a "1" dans la 'Range', ensuite dans une autre case pour la même 'Range'
    s'il y a "2", ensuite
    s'il y a "3", jusqu'à 10.
    Merci.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Récupérer un numéro de ligne dans une plage de cellules
    Par clem256 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 30/03/2017, 16h02
  2. [OpenOffice][Tableur] Ecrire dans une plage de cellule
    Par jmjmjm dans le forum OpenOffice & LibreOffice
    Réponses: 4
    Dernier message: 08/05/2007, 15h20
  3. Comment sélectionner une plage de cellules non consécutives?
    Par jokair dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/08/2006, 16h36
  4. Pb de lecture données dans une plage de cellule avec itération
    Par rond24 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/07/2006, 14h33
  5. Remplacer "#N/A" dans une plage de cellule.
    Par Yogi_01 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 12/04/2006, 15h59

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