Disparition de lien hypertexte [Résolu]

Signaler
Messages postés
4
Date d'inscription
mardi 16 décembre 2008
Statut
Membre
Dernière intervention
28 janvier 2009
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
Moufine...
Bonjour a tous, je rencontre un problème avec une macro, n'étant pas très fort en VBA je viens demander de l'aide:
j'ai un lien hypertexte dans la cellule A1 de la feuille 1
grace a une macro (Worksheets (2).Cells(lignevide, 1).Value = Worksheets(1).Cells(1 . 1).Value) je récupère des données de cette feuille que j'incrémente dans un tableau de la feuille 2

je copie bien le lien mais comme du texte et non comme un lien hypertexte.
j'ai essayé beaucoup de chose mais je n'arrive à rien!!

merci d'avance à ceux qui pourront m'aider

7 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Salut
C'est normal puisque tu recopies la Value.
Un lien hypertexte n'est qu'un format d'affichage.
Pour recopier un lien, il faut faire un vrai copier-coller :
Exemple reccueilli en enregistrant une macro pendant que je copiais à la main la cellule (valeur et format)
    Sheets("Feuil1").Select
    Range("A1").Select
    Selection.Copy
    Sheets("Feuil2").Select
    Range("A1").Select
    ActiveSheet.Paste

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
4
Date d'inscription
mardi 16 décembre 2008
Statut
Membre
Dernière intervention
28 janvier 2009

Moufine...
merci Jack, le problème c'est quand je veux coller la cellule, en effet la destination est de la forme :
lignevide = Worksheets("feuill2").Cells(65536, 1).End(xlUp).Row + 1
Worksheets("feuill2").Cells(lignevide, 13).Value = Worksheets("feuill1").Cells(16, 8).Value.

merci d'avance si tu peux m'aider
Messages postés
4
Date d'inscription
mardi 16 décembre 2008
Statut
Membre
Dernière intervention
28 janvier 2009

Moufine...
mis en forme c'est plus lisible

merci Jack, le problème c'est quand je veux coller la cellule, en effet la destination est de la forme :
lignevide Worksheets("feuill2").Cells(65536, 1).End(xlUp).Row + 1 Worksheets("feuill2").Cells(lignevide, 13).Value Worksheets("feuill1").Cells(16, 8).Value
merci d'avance si tu peux m'aider
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Oui, bah suffit d'adapter : Pense à regarder dans l'aide !
à la place de mes Range, tu mets tes Cells avec variable, mais il faut absolument faire un Copy / Paste.
    Sheets("Feuil1").Select
    Cells(16, 8).Select
    Selection.Copy
    Sheets("Feuil2").Select
    Cells(LigneVide, 13).Formula = ActiveSheet.Paste

ou même, ta précédente fonction était bonne, sauf qu'il faut utiliser Formula et pas Value
    Worksheets("Feuil2").Cells(LigneVide, 13).Formula = _
        Worksheets("Feuil1").Cells(16, 8).Formula

Fait attention aussi aux noms des feuilles : le format standard est "Feuil1", pas "feuill1" (un L en trop), à moins que tu aies renommé ces feuilles toi même ...
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Pense à enregistrer des macros pendant que tu fais des manips à la main : Tu auras le code tout fait !
Messages postés
4
Date d'inscription
mardi 16 décembre 2008
Statut
Membre
Dernière intervention
28 janvier 2009

Merci Jack le code que tu m'as donné marche partiellement
Voilà le code que je tape grace à tes indications
effectivement j'obtiens bien un lien hypertexte dans ma 2eme feuille;
par contre il se colle n'importe où
as tu une idée de ce qui ce passe?

Private Sub collage_lien()

LigneVide = Worksheets("Base devis").Cells(65536, 1).End(xlUp).Row + 1

Sheets("Devis").Select
Cells(1, 13).Select
Selection.Copy
Sheets("Base devis").Select
Cells(LigneVide, 14).Formula = ActiveSheet.Paste

End Sub
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Re
Bah la réponse est simple : Que vaut LigneVide après sa définition ?
C'est surement là qu'est l'erreur.
Est-ce qu'il colle dans la bonne colonne ? Ce numéro de colonne est fixe : 14, il ne devrait donc pas aller ailleurs.

Connais-tu les touches F9 et F8 ?
F9 pose une demande d'arrêt sur une ligne de code (celle de LigneVide = ... serait parfaite).
Une fois stoppé sur cette ligne, il te suffit de survoler les noms des variables pour que leur valeur s'affichent.
F8 permet de continuer à exécuter le code, mais d'une seule figne afin de poursuivre la recherche de bug
F5, bien sûr, permet de continuer le programme normalement
NB : Quand le programme est arrêté sur une ligne, il ne l'a pas encore exécutée.

Utilise ces fonctions pour suivre le programme et vérifier son cheminement + vérifier que les calculs sont bons. S'ils ne le sont pas, de regarder pourquoi.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)