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 :

Faire un Copier et Coller en fonction d'une recherche de cellule [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2016
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2016
    Messages : 46
    Par défaut Faire un Copier et Coller en fonction d'une recherche de cellule
    Bonjour le Forum, Bonjour à tous.

    Je souhaite faire (en auto par bouton) un copier d'une sélection pour la coller dans un tableau à entête, sous une entête bien précise (un mois).
    Par exemple :
    Je suis en mai 2017.
    Je sélectionne mes données (elles sont toujours au même endroit N3:N5. Seul le mois en N2 change)
    Je cherche le mois N2 dans ma plage U2:JZ2
    Je colle dans les cellules en dessous (exemple si trouve en AA2 alors colle en AA3:AA5)

    Voici mon 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
    Sub ChercheCopierColler()
     
    'déclaration des variables :
     
    Dim Trouve As Range
    Dim PlageDeRecherche As Range
    Dim Valeur_Cherchee As Date
    Dim AdresseTrouvee As String
    Dim OuColler As Range
     
     
    'copier la selection
    Range("N3:N5").Select
    Selection.Copy
     
    'chercher ou coller la selection
    Valeur_Cherchee = Range("$N$2")
    Set PlageDeRecherche = Sheets("Rapports 1").Range("$U$2:$JZ$2")
     
    'méthode find, ici on cherche la valeur exacte (LookAt:=xlWhole)
    Set Trouve = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlWhole)
     
    'pour le cas où la valeur est trouvée
    AdresseTrouvee = Trouve.Address
     
    'on veut coller a partir de la cellule sous AdresseTrouvee
    OuColler = Range(AdresseTrouvee).Offset(1, 0)
     
    'on colle
    Range(OuColler).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
     
     
    End Sub
    J'ai une erreur '91' - Variable Objet ou variable de bloc with non définie en ligne 27.

    J'ai essayé d'autre trucs, mais je cale...

    Merci pour votre aide.

    Bob 182

  2. #2
    Membre averti Avatar de Kentarosan
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2017
    Messages : 37
    Par défaut
    Bien le bonjour!

    A mon humble avis, ton erreur se lève parce que (en tout cas c'est ce que j'ai pu voir au débuggeur) si ta variable Trouvee vaut Nothing (ce qui va être le cas si la recherche ne renvoie pas de résultat) la propriété Trouvee.Adrress à la ligne 24 va provoquer une erreur.

    Il faudrait que tu testes si Trouvee ne vaut pas Nothing avant de continuer ou alors il faut être sûr que la recherche renverra toujours quelque chose, ce qui n'est pas forcément garanti.

    En espérant avoir aidé!

  3. #3
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2016
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2016
    Messages : 46
    Par défaut
    Bonjour Kentarosan,

    Merci pour ta réponse.
    Effectivement, je rajouterai un test.
    Mais dans ce cas :
    La variable AdresseTrouvee = $AF$2 et j'ai quand même l'erreur...

    Bob 182

  4. #4
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2016
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2016
    Messages : 46
    Par défaut
    Je pense avoir trouvé.

    J'ai remplacé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OuColler = Range(AdresseTrouvee).Offset(1, 0)
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Trouve.Offset(1, 0).Activate
    Je clic sur résolu, mais si quelqu'un veut bien m'expliquer la différence, c'est avec plaisir.

    Merci.

    Cordialement,

    Bob 182

  5. #5
    Membre averti Avatar de Kentarosan
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2017
    Messages : 37
    Par défaut
    Bonjour,

    Je ne suis pas sûr que ce soit le problème mais je pense que de la même manière que tu as mis Set Trouve = ..., il aurait fallu un Set avant OuColler = ....
    C'est peut-être un premier problème mais je ne suis pas sûr que ça règle tout

    Après tu as utilisé Activate au lieu de Select dans ton dernier message. Est-ce que ça changerait quelque chose au non-fonctionnement du premier code? Pas sûr.

    En espérant quand même aider un peu

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

Discussions similaires

  1. [XL-2013] Copier des cellules en fonction d'une plage de cellules
    Par Flows dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 24/02/2014, 18h38
  2. Réponses: 9
    Dernier message: 25/01/2012, 17h07
  3. [XL-2000] Comment copier puis coller x fois ? (x = valeur de la cellule)
    Par wyzer dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/03/2010, 13h32
  4. [XL-2007] Extraire des lignes en fonction d'une valeur de cellule dans un autre fichier
    Par MisterTambo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/08/2009, 10h42
  5. Creation etat en fonction d'une recherche
    Par Raphael39 dans le forum Access
    Réponses: 6
    Dernier message: 08/01/2006, 09h08

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