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 Msgbox sur recherche


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 2
    Points : 2
    Points
    2
    Par défaut VBA Msgbox sur recherche
    Salut a tous , j'ai un petit programme sur VBA qui me permet de retrouver une valeur dans une cellule en page 1 , vers les pages 2-3-4.

    Si la valeur en page 1 n'existe pas en page 2-3-4 le prg bugg.
    Je voulais ajouter un Msgbox mais je n'y parviens pas .

    le Prg :

    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
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Liste2 As Range, Liste3 As Range, Liste4 As Range, i As Byte, Cible As Range
    If Not Intersect(Target, Range("F21")) Is Nothing Then
        With Worksheets(2)
        Set Liste2 = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
        End With
        With Worksheets(3)
        Set Liste3 = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
        End With
        With Worksheets(4)
        Set Liste4 = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
        End With
     
      Set Cible = Liste2.Find(Range("F21"))
        i = 2
        If Cible Is Nothing Then
            Set Cible = Liste3.Find(Range("F21"))
            i = 3
            ElseIf Cible Is Nothing Then
            Set Cible = Liste4.Find(Range("F21"))
            i = 4
     
     
       End If
    If Cible <> Liste4.Find(Range("F21")) Or Liste3.Find(Range("F21")) Or Liste2.Find(Range("F21")) Then
               MsgBox "slt!"
               End If
     Worksheets(i).Activate
     
     
    Cible.Activate
     
    End If
     
    End Sub
    Merci de vos reponses

  2. #2
    Membre éclairé Avatar de pyloupylou
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Janvier 2012
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2012
    Messages : 438
    Points : 666
    Points
    666
    Par défaut
    If Cible <> Liste4.Find(Range("F21")) Or Liste3.Find(Range("F21")) Or Liste2.Find(Range("F21")) Then
    MsgBox "slt!"
    End If


    et si tu remplaçais ton test final par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if cible is nothing then
        msgbox "slt"
    endif

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    c'est bon merci beaucoup , le code suivant fonctionne:


    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
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Liste2 As Range, Liste3 As Range, Liste4 As Range, i As Byte, Cible As Range
    If Not Intersect(Target, Range("F21")) Is Nothing Then
        With Worksheets(2)
        Set Liste2 = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
        End With
        With Worksheets(3)
        Set Liste3 = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
        End With
        With Worksheets(4)
        Set Liste4 = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
        End With
     
      Set Cible = Liste2.Find(Range("F21"))
        i = 2
        If Cible Is Nothing Then
            Set Cible = Liste3.Find(Range("F21"))
            i = 3
            ElseIf Cible Is Nothing Then
            Set Cible = Liste4.Find(Range("F21"))
            i = 4
     
     
       End If
        If Cible Is Nothing Then
        MsgBox "Pont inconnu du site !"
     
     Else: Worksheets(i).Activate
     
     
    Cible.Activate
    End If
    End If
     
    End Sub

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

Discussions similaires

  1. [AC-2013] Formulaire de recherche (VBA) basé sur plusieurs tables
    Par Defaultuser01 dans le forum IHM
    Réponses: 21
    Dernier message: 28/04/2014, 13h06
  2. aide sur rechercher vba
    Par fpouzou dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 20/11/2009, 02h45
  3. Réponses: 3
    Dernier message: 16/11/2006, 11h54
  4. [SQL] probleme sur recherche
    Par Tib781 dans le forum Access
    Réponses: 2
    Dernier message: 19/05/2005, 12h31
  5. [VBA] Algo de recherche de doublons
    Par guams dans le forum VBA Access
    Réponses: 6
    Dernier message: 27/07/2004, 17h10

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