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 :

atteindre la ou les cellules d'un classeur porteur de la même valeur


Sujet :

Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juillet 2019
    Messages : 6
    Points : 3
    Points
    3
    Par défaut atteindre la ou les cellules d'un classeur porteur de la même valeur
    Pour une association, je dispose d'un classeur de plusieurs onglets qui regroupent, pour chaque onglet (U7, U9, U11, U13, U15, U17, U19, senior, Dirigeants et bénévoles, staffs), les informations (nom, prénom, téléphone, e-mail, date de naissance, notamment) des personnes présentes dans l'onglet.

    Je souhaite modifier la macro ci-dessous, qui fournit, sur une ou plusieurs lignes, le résultat, à l'intérieur d'une MsgBox, avec le nom de l'onglet et l'adresse de la cellule.

    Cela fonctionne très bien. Cependant il faut ensuite se rendre sur l'onglet et l'adresse pour voir les renseignements utiles ce qui compte tenu du nombre d'articles trouvés peut être fastidieux.

    Je souhaiterais, si cela est possible, atteindre la première occurrence pour noter le ou les éléments utiles présents sur la ligne, puis atteindre la seconde occurrence, etc... OU faire cette même recherche depuis un onglet nommé "Recherche" et recevoir dans cet onglet, la copie de la ou des lignes des différents onglets concernés par la valeur recherchée.

    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
    Sub Recherche()
    Dim MaRecherche
    Dim Ws As Worksheet
    Dim c As Range
    Dim Message As String, firstAddress As String, trouve As String
        MaRecherche = InputBox("Saisir la valeur à rechercher", "Recherche")
        Message = "La valeur " & MaRecherche & " a été trouvée :" & Chr(10)
            For Each Ws In Worksheets
            With Ws
                Set c = .Columns("A:Z").Find(What:=MaRecherche, LookIn:=xlValues, LookAt:=xlPart)
                    If Not c Is Nothing Then
                    firstAddress = c.Address
                      Do
                        Message = Message & "- dans la feuille " & Ws.Name & ", cellule " & c.Address & Chr(10)
                        Set c = .Columns("A:Z").FindNext(c)
                    Loop While Not c Is Nothing And c.Address <> firstAddress
                End If
            End With
        Next Ws
        MsgBox Message
    End Sub
    Par avance Merci !

  2. #2
    Membre éprouvé
    Homme Profil pro
    utilisateur
    Inscrit en
    Janvier 2017
    Messages
    669
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : utilisateur
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2017
    Messages : 669
    Points : 1 109
    Points
    1 109
    Par défaut
    Bonjour gefriche,

    Voyez si la solution, sans macro, proposée dans le fichier joint vous convient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDIRECT(ADRESSE(PETITE.VALEUR($U7.$A:$A;1);COLONNE();4;1;$A3);1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDIRECT(ADRESSE(PETITE.VALEUR($U9.$A:$A;1);COLONNE();4;1;$A4);1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(ESTERREUR(TROUVE($Recherche.A$1;B3));"";LIGNE())
    Etc..

    gefriche.xlsx
    LibreOffice 7.5.9.2.M1 (x64) FR-YT 05/12/23
    OS : Windows 11.0

  3. #3
    Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juillet 2019
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Merci pour votre réponse. Cependant, comme cette base de données est destinée à être partagée entre dirigeants qui disposent de niveaux très différents en matière d'utilisation des outils informatiques, il est préférable d'utiliser une feuille vierge.

    En conséquence, je recherche plutôt une macro transparente pour les utilisateurs qui après avoir cliqué sur un bouton et saisi l'objet de leur recherche, la visualise immédiatement. Un bouton RaZ venant éventuellement compléter la fin avant une nouvelle recherche.

    Merci.

  4. #4
    Membre émérite Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 670
    Points : 2 489
    Points
    2 489
    Par défaut
    Avec une feuille "Recherche" contenant impérativement les titres "Feuille, Nom, Prénom, Tel, eMail, Cellule" commençant en A2:

    Utiliser ce code (vous devez prévoir le cas où le texte recherché n'existe pas!"):
    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
    Sub Recherche()
     
        Dim MaRecherche
        Dim Ws As Worksheet
        Dim c As Range
        Dim Message As String, firstAddress As String, trouve As String
     
        MaRecherche = InputBox("Saisir la valeur à rechercher", "Recherche")   'Je suppose que la recherche se fait que sur le NOM uniquement !!
        Sheets("Recherche").Cells(1, 1) = UCase(MaRecherche)
        Message = "La valeur " & MaRecherche & " a été trouvée :" & Chr(10) & Chr(10)
     
        Sheets("Recherche").Range("A3:G1000").ClearContents
     
        For Each Ws In Worksheets
            If Not Ws.Name Like "Recherche" Then
                With Ws
                    Set c = .Columns("A:A").Find(What:=MaRecherche, LookIn:=xlValues, LookAt:=xlPart)
                        If Not c Is Nothing Then
                        firstAddress = c.Address
                          Do
                            Message = Message & "- dans la feuille " & Ws.Name & ", cellule " & c.Address & Chr(10)
                            With Sheets("Recherche")
                                .Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = Ws.Name
                                .Cells(Rows.Count, 2).End(xlUp).Offset(1, 0) = c.Value  'nom
                                .Cells(Rows.Count, 3).End(xlUp).Offset(1, 0) = c.Offset(0, 1).Value 'prénom
                                .Cells(Rows.Count, 4).End(xlUp).Offset(1, 0) = c.Offset(0, 2).Value 'Tel
                                .Cells(Rows.Count, 5).End(xlUp).Offset(1, 0) = c.Offset(0, 3).Value 'eMail
                                .Cells(Rows.Count, 6).End(xlUp).Offset(1, 0) = c.Offset(0, 4).Value 'Dt naissance
                                .Cells(Rows.Count, 7).End(xlUp).Offset(1, 0) = c.Address
                            End With
                            Set c = .Columns("A:A").FindNext(c)
                            Loop While Not c Is Nothing And c.Address <> firstAddress
                        End If
                End With
            End If
        Next Ws
     
        MsgBox Message & vbLf & vbLf & "Voir plus de détails sur la feuille 'Recherche'", vbInformation + vbOKOnly, "Résultat de la recherche"
        DoEvents
        Sheets("Recherche").Select: Range("A1").Select
     
    End Sub

  5. #5
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Bonjour à tous

    Citation Envoyé par gefriche Voir le message
    ... Cependant, comme cette base de données est destinée à être partagée entre dirigeants qui disposent de niveaux très différents en matière d'utilisation des outils informatiques, il est préférable d'utiliser une feuille vierge...
    Je pense qu'un simple tableau croisé dynamique (TCD) suffit

    Et du coup l'utilisation devient plus simple pour tous
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

Discussions similaires

  1. Utiliser les cellules d'un classeur à nom variable
    Par Xenthys dans le forum Excel
    Réponses: 24
    Dernier message: 08/09/2014, 13h12
  2. [XL-2003] Compiler les cellules de plusieurs classeurs dans un classeur
    Par Kestion100 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 14/06/2013, 17h17
  3. [XL-2010] Copier dans un classeur A les cellules d'un classeur B
    Par emi81 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 28/01/2013, 08h34
  4. [XL-2007] Faire passer une image derrière les cellules d'un classeur
    Par YassDumb dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 17/07/2012, 16h48
  5. [XL-2007] Copier les cellules d'un classeur vers un autre
    Par tibofo dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/07/2010, 13h02

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