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 :

Créer une recherche dans excel suivi d'un copier/coller


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2012
    Messages : 169
    Par défaut Créer une recherche dans excel suivi d'un copier/coller
    Bonjour à tous,

    Je suis complètement novice en ce qui concerne le VBA sur excel et j'essaie d'apprendre sur le tas, sans grandes notions...

    Je suis en train d'essayer pour un tableau excel de créer une "requête". Je vous donne un exemple :

    J'ai une base de donnée avec des nom prénom date, etc...

    Lorsque je choisis une date dans une cellule ou ailleurs, je voudrais que excel trouve toute les dates qui correspondent et me copie et me colle les lignes correspondantes dans une autre feuille. Si j'arrive a faire ça après je me débrouillerai pour l'adapter vraiment à ce que je veux. Pour l'instant en m'aidant de certains forum j'ai fait ça :

    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
    Sub nouveau()
    
    Sheets("Option").Activate
    
    strChaine = InputBox("Question")
    Set rngTrouve = ActiveSheet.Columns(1).Cells.Find(what:=strChaine)
    
    If rngTrouve Is Nothing Then
    MsgBox "Pas trouvé"
    Else
    Cellule.Select
    Selection.Copy
    Sheets("feuil3").Activate
    Range("A1").Select
    ActiveSheet.Paste
    End If
    
    Set rngTrouve = Nothing
    End Sub
    Sur la partie en rouge je bloque... Comment dire à ma macro : Sélectionner la cellule / ligne qui a été trouvée...

    Et je ne comprend pas bien ce que signifie Strchaine...

    si quelqu'un peut me donner un coup de main ce sera super sympa parce que je galère....

    Merci d'avance !

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    "strChaine" est une variable de type "String" (pense à toujours déclarer tes variables dans ton code en fonction de la portée que tu souhaite leurs donner, ceci t'évitera de t'arracher les cheveux dans le futur) qui permet de stocker la valeur saisie dans la boite de dialogue (InputBox). Evite autant que possible les "Select" et "Activate" qui font scintiller l'écran et ralentir 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
     
    Sub nouveau()
     
        Dim rngTrouve As Range
        Dim strChaine As String
     
     
        strChaine = InputBox("Question")
     
        Set rngTrouve = Sheets("Option").Columns(1).Cells.Find(strChaine, , xlValues, xlWhole)
     
        If rngTrouve Is Nothing Then
     
            MsgBox "Pas trouvé"
     
        Else
     
            MsgBox "Trouvé dans la cellule " & rngTrouve.Address(0, 0) & " !"
            rngTrouve.Copy Sheets("feuil3").Range("A1")
     
        End If
     
    End Sub
    hervé.

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2012
    Messages : 169
    Par défaut
    Merci beaucoup Hervé pour ta réponse ! Ton code est beaucoup mieux que le mien ^^

    J'arrive maintenant à déterminer l'adresse de la cellule qui est recherchée et donc à coller son contenu dans la feuille souhaitée. Mais il me reste deux choses à faire et mon problème sera réglé.

    Il me faut maintenant :
    1. Remplacer : copier la cellule par copier la ligne entière. En gros, récupérer l'adresse de la cellule, repérer a quelle ligne cela correspond et copier la ligne entière...

    2. Plus compliqué je pense, rechercher toute les valeurs identiques et les coller toutes les unes sous les autres dans la feuille (et la ma fonction pour créer une requête est terminé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
    22
    Sub RECHERCHE_VALEUR()
    'je demande le texte recherché
    REP = InputBox("Entrez la valeur recherchée")
    'je cherche
    Set R = Sheets("Option").Range("A:A").Find(REP)
    'si VBA n'a pas trouvé
    If R Is Nothing Then
    MsgBox "la valeur " & REP & " n'a pas été trouvée"
    Exit Sub
    End If
    'si la valeur a été trouvée
    If Not R Is Nothing Then
    'je montre l'adresse de la cellule
    MsgBox R.Address
    'j'active la cellule où a été trouvée la valeur
    Range(R.Address).Activate
    Selection.Copy
    Sheets("Feuil3").Select
        Range("A1").Select
        ActiveSheet.Paste
    End If
    End Sub

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/12/2014, 15h53
  2. Comment créer une recherche dans un site ou créer un annuaire
    Par MicetAnn dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 02/09/2009, 01h15
  3. [XL-2003] Faire une recherche dans Excel
    Par NEC14 dans le forum Excel
    Réponses: 16
    Dernier message: 14/05/2009, 11h26
  4. [VBA-Excel] Effectuer une recherche dans une liste view
    Par Miles Raymond dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/11/2006, 17h21
  5. recherche d'une valeur dans excel + addition
    Par chti'me dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 22/09/2006, 23h53

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