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 :

Macro pour recherchev


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 123
    Points : 45
    Points
    45
    Par défaut Macro pour recherchev
    Je recherche une macro qui me permettrait de rafraichir toutes les fonctions recherchev dans les feuilles d'un classeur. A l'ouverture du classeur les recherchev devront être inhibés et actualisés au déclenchement de la macro. Est ce possible? Si oui comment svp?

  2. #2
    Membre chevronné Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Points : 2 056
    Points
    2 056
    Par défaut
    Bonjour

    une piste peu être

    Pour bloquer les calculs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Application.Calculation = xlManual
    Pour actualiser les calculs comme F9
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Application.Calculation = xlAutomatic
    tu dis
    Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
    ---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 123
    Points : 45
    Points
    45
    Par défaut
    Désolé mais j'ai déjà essayé cette méthode. Cela ne marche pas pour mon application.

  4. #4
    Membre régulier
    Homme Profil pro
    developpeur
    Inscrit en
    Octobre 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : developpeur
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2011
    Messages : 124
    Points : 104
    Points
    104
    Par défaut
    Tu peux activer tes macros de mise à jour par feuille en placant le code
    directement dans celle-ci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_Activate()
    'lancement des formules et de la mise à jour
    End Sub
    A chaque fois que tu ouvres ton onglet ta macro s'active.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 123
    Points : 45
    Points
    45
    Par défaut
    Bonjour lenovo49. Ce n'est pas les macros que je souhaite activer. Je recherche une macro qui activerait et désactiverait mes fonctions recherchev. Il y a en a tellement dans mes feuilles qu'excel plante.

  6. #6
    Membre régulier
    Homme Profil pro
    developpeur
    Inscrit en
    Octobre 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : developpeur
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2011
    Messages : 124
    Points : 104
    Points
    104
    Par défaut
    Il faut nous en dire plus....
    Si tu as plusieurs feuilles et tu ne veux pas tout refaire tu peux voir à ajouter
    un bouton dans chaque page et déclancher chaque résultat à ta convenance.

    Si tu n'a pas la place de mettre se bouton il te reste l'option de créer
    un onglet complément dans ton bandeau et d'y afficher les optons de mise à jour.

    Sinon si c'est pour tout le classeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    APPLICATION.ENABLEEVENTS=FALSE
    Et avec cela plus de macro....

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 123
    Points : 45
    Points
    45
    Par défaut
    j'ai la place de mettre un bouton dans mes feuilles. Mais ce n'est pas les macro que je veux désactivé. C'est le recalcule des fonctions recherchev dans les feuilles. Je veux pouvoir activer la mise à jour des formules recherchev quand je le souhaite.

  8. #8
    Membre régulier
    Homme Profil pro
    developpeur
    Inscrit en
    Octobre 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : developpeur
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2011
    Messages : 124
    Points : 104
    Points
    104
    Par défaut
    Combien tu as de feuilles avec de la rechercheV?
    Au début j'ai utilisé cette fonction mais par la suite j'ai laissé tomber
    et j'ai mis des macros en places pour chaques feuilles.

    C'est plus efficasses et surtout plus stable.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 123
    Points : 45
    Points
    45
    Par défaut
    J'ai 7 feuilles. J'aimerai bien savoir faire une macro pour les remplacer, car je te confirme c'est un peu le problème. Il y en a de trop dans les feuilles et après excel bug. Tu as un "truc" à me proposer pour les remplacer?

    Voici le lien ou tu trouveras le fichier. Enfin j'espère!
    cette fois ça doit fonctionner.

    http://dl.free.fr/iuuk8YKjt

  10. #10
    Membre régulier
    Homme Profil pro
    developpeur
    Inscrit en
    Octobre 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : developpeur
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2011
    Messages : 124
    Points : 104
    Points
    104
    Par défaut re:
    Bon ok, magnifique cette usine à gaz....

    Voici du code à adapter dans ton projet:

    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
    Sub exemple()
     
    Dim valeur_cherchée
    Dim nvlle_destination1
    Dim nvlle_destination2
    Dim nvlle_destination3
     
     
        For Each c In Sheets("feuil1").Range("A1:A1000") ' la feuille ou tu cherches tes données
        If valeur_cherchée = c.Value Then ' la valeur que tu cherches
        nvlle_destination1 = c.Offset(0, 0).Value ' tu choisis la valeur de colonne 1
        nvlle_destination2 = c.Offset(0, 1).Value ' tu choisis la valeur de colonne 2
        nvlle_destination3 = c.Offset(0, 2).Value ' tu choisis la valeur de colonne 3
        '........................................................
        'exemple si tu es sur la feuille2 et que tu es sur la cellule A1
        'cet exemple va chercher une valeur dans la feuille1 sur plage("A1:A1000")
        'trouve la valeur et renvoi sur la feuille 2 dans la cellule de ton choix
        'par rapport à ta position de départ!!
        ActiveCell.Offset(0, 0).Value = nvlle_destination1 ' tu reportes la valeur de la colonne1
        ActiveCell.Offset(0, 1).Value = nvlle_destination2 ' tu reportes la valeur de la colonne2
        ActiveCell.Offset(0, 2).Value = nvlle_destination3 ' tu reportes la valeur de la colonne3
        '........................................................
     
        GoTo suite 'tu peux sortir de la boucle quand tu veux
        End If
        Next
    suite:
     
    End Sub


    Ca remplace tes formules trop lourdes à embarquer sur un seul classeur.
    Tu peux adapter ce code dans l'onglet demande pour la référence WH912
    il va te reconduire toutes les lignes que tu vas avoir choisi en ajoutant
    de "nvlle_destination".

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 123
    Points : 45
    Points
    45
    Par défaut
    Oui je sais, je suis très fort pour monter des usines à gaz!
    je lance la macro et ensuite je lui donne les données comment stp? Il me faut un userform?

  12. #12
    Membre régulier
    Homme Profil pro
    developpeur
    Inscrit en
    Octobre 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : developpeur
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2011
    Messages : 124
    Points : 104
    Points
    104
    Par défaut
    La "valeur_cherchée" c'est par exemple ta réf WH912 de ton onglet document et donc tu te places dans ta cellule C4:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    valeur_cherchée= range("document!C4").value '(exemple)
    Voilà tu viens de valider ta constante!!
    Pas besoin userform c'est tout simple.
    A+

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 123
    Points : 45
    Points
    45
    Par défaut
    Et ensuite je recopie ce code pour toutes les autres lignes alors?
    Est ce que ça fonctionne pour tous les recherchev de ma feuille "basecomposant"?

  14. #14
    Membre régulier
    Homme Profil pro
    developpeur
    Inscrit en
    Octobre 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : developpeur
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2011
    Messages : 124
    Points : 104
    Points
    104
    Par défaut a toi de jouer!!
    Dans un module, tu places ce code
    Tu le lances et le résultat te donne la valeur de d4 e5 et f6 de la feuille demande. à toi de voir pour la suite...

    J'ai testé etc'est nickel!



    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 exemple()
     
    Dim valeur_cherchée
    Dim nvlle_destination1
    Dim nvlle_destination2
    Dim nvlle_destination3
     
    Sheets("DEMANDE").Select
     
    Range("C4").Select
    valeur_cherchée = Range("C4").Value
     
        For Each c In Sheets("base").Range("A1:A1000") ' la feuille ou tu cherches tes données
        If valeur_cherchée = c.Value Then ' la valeur que tu cherches
        nvlle_destination1 = c.Offset(0, 1).Value ' tu choisis la valeur de colonne 1
        nvlle_destination2 = c.Offset(0, 2).Value ' tu choisis la valeur de colonne 2
        nvlle_destination3 = c.Offset(0, 3).Value ' tu choisis la valeur de colonne 3
        '........................................................
        'exemple si tu es sur la feuille2 et que tu es sur la cellule A1
        'cet exemple va chercher une valeur dans la feuille1 sur plage("A1:A1000")
        'trouve la valeur et renvoi sur la feuille 2 dans la cellule de ton choix
        'par rapport à ta position de départ!!
        ActiveCell.Offset(0, 1).Value = nvlle_destination1 ' tu reportes la valeur de la colonne1
        ActiveCell.Offset(0, 2).Value = nvlle_destination2 ' tu reportes la valeur de la colonne2
        ActiveCell.Offset(0, 3).Value = nvlle_destination3 ' tu reportes la valeur de la colonne3
        '........................................................
     
        GoTo suite 'tu peux sortir de la boucle quand tu veux
        End If
        Next
    suite:
     
    End Sub

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 123
    Points : 45
    Points
    45
    Par défaut
    Je viens d'essayer. Effectivement cela fonctionne. Par contre en C4 je n'ai pas toujours le même produit. J'ai mis VH912, mais ça peut être RX101. Et la il faut aller chercher les composants qui correspondent. Ce n'est pas le cas, sauf si j'ai fait une erreur. Car c'est très fort à comprendre pour mon niveau de connaissance en VBA.

  16. #16
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Bonsoir Fred4345, lenovo49
    Si je me permet d'intervenir dans votre discussion pour donner mon avis ou une piste supplémentaire.

    • Éviter d'utiliser les Select, Activate
    • Déclarer convenablement toutes les variables et éviter les accents dans le nom des variables
    • Pour chercher une valeur dans une plage de cellules, utiliser plutôt la méthode Find au lieu des boucles, c'est plus performant.
    • Pour formaliser le code, éviter les cassures dans les boucles tel que Goto machin (il existe un Exit For)

    A vous.
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  17. #17
    Membre régulier
    Homme Profil pro
    developpeur
    Inscrit en
    Octobre 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : developpeur
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2011
    Messages : 124
    Points : 104
    Points
    104
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    valeur_cherchée = Range("C4").Value
    C4=WH912

    Donc copier ce module par le nombre de fois qu'il y a de tableau et remplacer à chaque fois
    la valeur C4 par la nouvelle cellule de tes autres references...

    sub tab1= tableau 1
    sub tab2= tableau 2
    etc....

    J'ai dit module excuse moi je voulais parler du code que je t'ai envoyé
    à copier le nombre de fois nécessaire dans le même module!!

    C'est la fatigue......

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 123
    Points : 45
    Points
    45
    Par défaut
    J'avoue que là je nage, je dirais même je coule!
    Sérieusement je suis trop novice pour tous comprendre pour le moment.

  19. #19
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Toujours commence par analyser ton problème et explique clairement ce que tu veux faire par rapport à la disposition de ton fichier.
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  20. #20
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 123
    Points : 45
    Points
    45
    Par défaut
    J'ai un peu compris comment fonctionne ton code. En faite il fonctionne bien puisque j'ai réussi à remplir ma première ligne. En faite il faut que le code produit soit en majuscule. Comme je le mettais en minuscule ça ne marchait pas!
    Je t'avais prévenu je suis un énorme novice. D'ailleurs pour comprendre ton code je m'aide de vba pour excel 2007 de l'édition pour les nuls.
    Je vais essayer de faire le produit 2.
    Par contre dans la ligne 6, j'utilise avec la fonction "recherchev" la fonction "si".
    Comment-fais tu pour la coder STP?
    Il faut vraiment que je retire le maximum de recherchev dans ce fichier.

Discussions similaires

  1. [XL-2007] Macro pour "modifier" la fonction RechercheV
    Par Dragoon51Fly dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/03/2015, 10h04
  2. [XL-2010] MACRO pour RECHERCHEV
    Par janigrel dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/03/2014, 20h49
  3. MACRO pour RECHERCHEV
    Par janigrel dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 13/03/2014, 06h49
  4. macro pour splashscreen
    Par stoads dans le forum IHM
    Réponses: 20
    Dernier message: 26/11/2005, 12h33
  5. [VBA-E] [help]macro pour dupliquer une feuille (en valeur)
    Par minikisskool dans le forum Macros et VBA Excel
    Réponses: 31
    Dernier message: 07/11/2005, 19h24

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