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 :

Récupérer le résultat d'une variable dans un tableau (VBA)


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Mars 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Mars 2014
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Récupérer le résultat d'une variable dans un tableau (VBA)
    Bonjour,
    Je débute en VBA

    Merci d'avance pour votre aide

    Ma macro me permet de rechercher et récupérer une valeur dans un classeur entier. Elle indique le lieu ou se trouve cette valeur. (par exemple "feuil1 cellule A2")
    Les résultats sont affichés dans une cellule A2.
    Cependant je souhaiterai si possible d'afficher ses résultats dans un tableau.
    Avec dans la 1ere colonne le nom de la feuille et la deuxième le nom de la cellule

    Voici mon code (la valeur recherché est "non terminés")
    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
    Sub Macro1()
    '
    ' Macro1 Macro
    '
    Dim MaRecherche
    Dim Ws As Worksheet
    Dim c As Range
    Dim Message As String, firstAddress As String
        MaRecherche = "non terminés"
        Message = "Voici les travaux " & MaRecherche & " a réaliser :" & 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
        Range("A2").Select
    Selection.Value = Message
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 906
    Points : 8 539
    Points
    8 539
    Par défaut
    Salut et bienvenu

    Je réponds sur ce fil, il serait bien que tu supprimes tes autres messages sur le même sujet.

    Essai en modifiant de la sorte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Do
        'On pointe la feuille où seront notés les résultats
        With ThisWorkbook.Sheets("Feuil1") 'Tu adaptes en fonction de la feuille où tu souhaites voir les résultats s'afficher
            'On pointe la 1ère cellule vide
            With .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0)
                'On note le nom de la feuille où se trouve le résultat
                .Value = WS.Name
                'Et la cellule dans laquelle il est contenu
                .Offset(0, 1).Value = c.Address
            End With
        End With
        Set c = .Columns("A:Z").FindNext(c)
    Loop While Not c Is Nothing And c.Address <> firstAddress
    ++
    Qwaz

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Mars 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Mars 2014
    Messages : 4
    Points : 5
    Points
    5
    Par défaut suite
    Merci pour ton aide, cependant je vois pas l'endroit ou je dois mettre ce code précisément

    désolé mais je suis un novice

  4. #4
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 906
    Points : 8 539
    Points
    8 539
    Par défaut
    Salut

    Désolé.

    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
    Sub Macro1()
    '
    ' Macro1 Macro
    '
    Dim MaRecherche
    Dim Ws As Worksheet
    Dim c As Range
    Dim firstAddress As String
     
        MaRecherche = "non terminés"
        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
                        'On pointe la feuille où seront notés les résultats
                        With ThisWorkbook.Sheets("Feuil1") 'Tu adaptes en fonction de la feuille où tu souhaites voir les résultats s'afficher
                            'On pointe la 1ère cellule vide
                            With .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0)
                                'On note le nom de la feuille où se trouve le résultat
                                .Value = Ws.Name
                                'Et la cellule dans laquelle il est contenu
                                .Offset(0, 1).Value = c.Address
                            End With
                        End With
                        Set c = .Columns("A:Z").FindNext(c)
                    Loop While Not c Is Nothing And c.Address <> firstAddress
                End If
            End With
        Next Ws
     
    End Sub
    ++
    Qwaz

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Mars 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Mars 2014
    Messages : 4
    Points : 5
    Points
    5
    Par défaut merci
    Bravo
    Je suis impressionné !!!

    Merci beaucoup et à une autre fois

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

Discussions similaires

  1. [MySQL] Récupérer le résultat d'une requête dans un tableau à une seule dimension
    Par Robjerey dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 17/09/2014, 17h20
  2. Réponses: 2
    Dernier message: 31/07/2013, 15h53
  3. [MySQL] Récupérer le résultat d'une requête dans un tableau
    Par Z20500 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 15/11/2008, 19h30
  4. [MySQL] Récupérer le résultat d'une requête dans une variable
    Par kryogen dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 22/10/2007, 15h29
  5. [MySQL] récupérer le résultat d'une requête dans un tableau
    Par faty2 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 19/05/2007, 17h22

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