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 activer une formule excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 79
    Points : 53
    Points
    53
    Par défaut Macro pour activer une formule excel
    Bonjour à tous,

    J'essaye de créer une macro pour activer automatiquement une formule excel :
    =LIEN_HYPERTEXTE("http://www.118012.fr/reponses.asp?RN="&K4&"&PAGE=1&RECHERCHE=EXACTE&LANGUE=FRFR-XXXXX#0"; "francois")

    Elle s'active lorsqu'on clique dessus mais le code Range ("").select ne suffit pas à l'activer.

    Vous avez une idée ?

    Merci à vous.

  2. #2
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour,
    essayes avec ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range ("a1").Hyperlinks(1).Follow 'si tonhypertext est en "a1"
    a +
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 79
    Points : 53
    Points
    53
    Par défaut
    Merci à toi mais lorsque j'execute la macro, j'ai un message d'erreur execution 9, l'indice n'appartient pas à la selection.

    Comprends pas...

  4. #4
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    je pense que l'indice 1 est responsable dans "Hyperlinks(1)", il faut certainement chercher le bon indice mais là j'ai des lacunes

    a +
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    bonjour,


    J'ai fais quelques test et il ne faut pas confondre la formule, avec un lien hypertexte.

    Le code de casefayere fonctionne si on a un lien hypertexte.

    Une solution serait peut être d'isoler le nom du lien de la formule et d'ajouter le lien dans une autre cellule ?

  6. #6
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    bonjour Alex et merci pour lui
    je peux proposer à arkorrigan (avec l'aide de l'enregistreur) d'inserer le lien par macro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        ActiveSheet.Hyperlinks.Add Anchor:=Range("a1"), Address:= _
            "http://www.118012.fr/reponses.asp?RN=%22&K4&%22&PAGE=1&RECHERCHE=EXACTE&LANGUE=FRFR-XXXXX" _
            , SubAddress:="0""; ""francois"")", TextToDisplay:= _
            "http://www.118012.fr/reponses.asp?RN=""&K4&""&PAGE=1&RECHERCHE=EXACTE&LANGUE=FRFR-XXXXX#0""; ""francois"")"
    pour un lien en a1 par exemple
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  7. #7
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    Merci je pensais a un truc dans le genre mais à adapter (on garde la formule) et surtout à améliorer :

    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 Macro4()
    Dim x As String
    ' Extraction du lien (peut mieux faire ;-)
    x = ThisWorkbook.Worksheets("feuil1").Range("A1").Formula
    x = Replace(Mid(x, 1, InStr(1, x, ",") - 1), "=HYPERLINK(", "")
    x = Mid(x, 2, Len(x) - 2)
    ' Ajout du lien
    Dim Macell As Range
    Set Macell = ThisWorkbook.Worksheets("feuil1").Range("B1")
     
    On Error Resume Next
    Macell.Hyperlinks(1).Delete
    On Error GoTo 0
     
    Macell.Hyperlinks.Add Anchor:=Macell, Address:=x _
    , SubAddress:="0", TextToDisplay:=x
    ' Suivre le lien
    Macell.Hyperlinks(1).Follow
    End Sub

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 79
    Points : 53
    Points
    53
    Par défaut
    Merci à vous, seulement avec vos techniques je perds la recherche exacte de la formule. Ce qui fait que le lien s'ouvre mais devient complètement inutile...

    Vous avez une idée ?

  9. #9
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour,
    essayes ce code que tu pourras peut-être adapter avec l'évènement approprié, je te conseille de prendre un document vierge, d'insérer ta formule en "A1", par exemple et copier mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub test()
    Dim x, y, ch As String, lien As String
    ch = Right(Range("a1").Formula, Len(Range("a1").Formula) - 1)
    x = InStr(ch, "(") + 1
    y = Len(ch) - InStrRev(ch, "0")
    lien = Mid(ch, x + 1, Len(ch) - y - x)
    ActiveWorkbook.FollowHyperlink Address:=lien, NewWindow:=True
    End Sub
    dans le code de la feuille concernée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Address = "$A$1" Then test
    End Sub
    je ne sais pas si ça t'aidera dans tes recherches
    pour la manipulation des chaines, on doit pouvoir faire mieux, il faut retenir l'idée
    bonne journée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 79
    Points : 53
    Points
    53
    Par défaut
    Ca ne fonctionne toujours pas... Je commence à me demander si il existe réellement une solution..!

  11. #11
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    j'ai fait un test et ça marche impeccable, peut-être ne t'expliques tu pas correctement sur tes besoins........
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 79
    Points : 53
    Points
    53
    Par défaut
    Ok, tu as raison, je dois mal m'exprimer.
    Peut être qu'une explication de l'application pourra aider...

    Avec un fichier client comportant nom, prénom, adresse, je cherche à obtenir leur numéro de téléphone.
    Pour cela, on m'a donné une formule excel :
    =LIEN_HYPERTEXTE("http://www.118012.fr/reponses.asp?RN="&K9&"&PAGE=1&RECHERCHE=EXACTE&LANGUE=FRFR-XXXXX#0"; "francois")

    Cette dernière reprend le nom, le prénom et l'adresse du client, les copie colle sur le site internet et lance la recherche sur le site.

    La formule est appliquée à l'ensemble des lignes du fichiers (2500 lignes).

    Ce que je souhaiterai, c'est créer un outil me permettant d'automatiser le lancement du lien et le copie colle du résultat de la recherche du site sur la feuille excel.
    Problème : lorsque j'enregistre la macro de manière automatique :
    1 : aucune formule de code n'apparait lors du déclenchement du lien
    2: lorsque j''enregistre une autre macro identique sur la ligne suivante, la macro copie colle le même résultat.

    Voilà, voilà, j'éspère avoir été un peu plus clair...?

  13. #13
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    A mon tour, je vais te dire ce que j'avais compris
    Je pensais donc que tu voulais en déplaçant la selection sur la cellule concernée, entrer directement sur le site que tu as spécifié, soit :
    http://www.118012.fr/reponses.asp?RN="&K9&"&PAGE=1&RECHERCHE=EXACTE&LANGUE=FRFR-XXXXX#0
    je ne comprenais pas ce nom à la fin de la formule "françois" donc en suivant mon raisonnement on arrive bien sur le site de cette façon, quantà ce que tu demande :
    ...le prénom et l'adresse du client, les copie colle sur le site internet et lance la recherche sur le site.
    je ne sais pas faire et encore moins :
    ...copie colle du résultat de la recherche du site sur la feuille excel.
    j'espère que des abonnés plus aguerris pourront t'aider.

    Bonne soirée et bon courage
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  14. #14
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 898
    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 898
    Points : 8 529
    Points
    8 529
    Par défaut
    Salut
    Ça ne vas pas être évident je pense.

    Pour ce qui est d'avoir le lien c'est facile, il suffit de recuperer la valeur de la cellule en colonne K pour une ligne donnée et de remettre les parties fix de l'adresse de chaque coté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dim MonLien as string
    MonLien = "http://www.118012.fr/reponses.asp?RN=" & cells(laligne,"K").value & "&PAGE=1&RECHERCHE=EXACTE&LANGUE=FRFR-XXXXX#0"
    Pour ce qui est ensuite de récupérer le contenu de la page, ça se fait dans certain cas, mais tu vas te heurter a quelques problèmes, par exemple plusieurs personne ayant le même nom / prénom, il est rare sur une grosse population de ne pas avoir d'homonymie parfaite.
    Donne nous un peu plus de détail sur la structure de ton tableau met la ligne d'entête et une ligne avec des valeurs, pour voir ce qui serait faisable.
    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 79
    Points : 53
    Points
    53
    Par défaut
    Merci, vous êtes vraiment sympas !

    Je vous envoie la ligne d'intitulés :

    Secteur/Commune/ CP/Nom prog/Habitat/Nom de l'occupant/Appt/Adresse
    CHN1/AVRILLE LES PONCEAUX/37340/899 - RUE DU LAVOIR/Individuel/FICOSIL/2000851/1/Rue Du Lavoir

    Résultat de la formule (sur même ligne, après BDD):
    =SUBSTITUE(F2&" "&H2&" "&C2&" "&B2;" ";"+")

    FICOSIL/2000851+Rue+Du+Lavoir+37340+AVRILLE+LES+PONCEAUX

    Puis formule lien hypertexte

    =LIEN_HYPERTEXTE("http://www.118012.fr/reponses.asp?RN="&K2&"&PAGE=1&RECHERCHE=EXACTE&LANGUE=FRFR-XXXXX#0"; "francois")

    Pour la partie extraction des données du site, on peut enregistrer la macro avec l'enregistreur mais aucune ligne de code n'apparaît, donc pas de moyens pour la modifier.

    Voilà, voilà et surtout merci beaucoup pour votre aide !

  16. #16
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 898
    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 898
    Points : 8 529
    Points
    8 529
    Par défaut
    Salut
    Il n'est pas possible d'enregistrer les action effectués en dehors de l'application Excel, donc ce qui se passe sur ton explorateur internet est ignoré par Excel.

    Il est toute fois possible de lancer une session de l'explorateur et d'en soutirer des renseignements.

    Mais je réitère mes remarques précédentes, même si avec le nombres de renseignement fourni, l'homonymie devient compliqué, as tu essayé de lancer la recherche avec les données que tu as fournis, si le site ne trouve pas les renseignement il te propose un peu n'importe quoi, tu risque donc très probablement de te retrouver avec une liste de téléphone erroné.

    [Edit]
    Désolé, j'ai regardé ce que je pouvais faire, mais c'est trop complexe et hasardeux, le tableau ou se trouve les données (numéro de tel entre autre) et génère avec un code java, certes le code n'a rien de compliqué, mais comment aller chercher les valeurs?
    Il faudrait récupérer le texte complet de la page peut être, et rechercher dans ce contenu.
    Mais
    1. je ne sais pas faire
    2. ça va être complètement hasardeux
    3. tu risques de te retrouver avec plein d'erreur

    J'ai regarder avec un autre site comme pagesblanches.fr ou il aurait peut être été possible de saisir via le code les information directement dans les champs texte, mais les mêmes problèmes surviennent une fois la recherche exécute.

    A mon avis ce genre de site font tout ce qu'ils peuvent pour éviter que des petits malin leur "vole" leur base de données, donc il me semblerait prétentieux de s'y attaquer avec Excel VBA

    Bon courage dans ton entreprise.
    [/Edit]
    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 79
    Points : 53
    Points
    53
    Par défaut Merci beaucoup !
    Ok, je crois que je suis du même avis... C'était un petit peu pretentieux peut être !
    En tout cas merci beaucoup pour votre aide, ce forum est vraiment plein de gens et conseils vraiment efficaces !

    Merci encore !

Discussions similaires

  1. [PPT-2013] Bouton avec macro pour ouvrir une feuille Excel PowerPoint 2013
    Par gdmeunier dans le forum Powerpoint
    Réponses: 0
    Dernier message: 27/10/2014, 13h10
  2. [XL-2010] Création macro pour répéter une formule sur plusieurs lignes
    Par JoOz-ZeP43 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/10/2014, 18h06
  3. [Toutes versions] Macro pour ajouter une feuille excel avec un nom précis
    Par luc-ratif dans le forum VBA Access
    Réponses: 1
    Dernier message: 12/05/2014, 09h53
  4. [XL-2010] Macro pour recopier une formule dans une cellule
    Par benadry dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 20/09/2013, 12h47
  5. [XL-2002] Macro pour répéter une formule
    Par NoodleDS dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/07/2013, 00h14

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