Millenod
Messages postés34Date d'inscriptionmardi 29 avril 2003StatutMembreDernière intervention21 septembre 2005
-
13 déc. 2004 à 11:54
jmp77
Messages postés1119Date d'inscriptionlundi 4 février 2002StatutMembreDernière intervention 4 octobre 2006
-
11 juil. 2005 à 12:45
Bonjour,
Je possède un tableau excel de 10 colonnes.
La colonne 1 indique le nom d'un projet, et possède (dans 70% des cas) un lien hypertexte vers un dossier du disque dur.
Parcourir le fichier excel, et extraire les données textes ne me posent aucun problème.
Mais, comment puis-je savoir si la cellule sélectionnée (lors de ma boucle) possède un lien ? et si oui comment le récupérer.
Merci d'avance pour votre aide.
A voir également:
Afficher lien hypertexte excel
Excel afficher lien hypertexte dans cellule - Meilleures réponses
jmp77
Messages postés1119Date d'inscriptionlundi 4 février 2002StatutMembreDernière intervention 4 octobre 20067 13 déc. 2004 à 14:19
Ok désolé je n'avais penser que le texte et le lien n'était pas les memes.
Alors je suis désolé mais la je ne peux pas tester le code mais voici l'aide en visual basic. Normalement tu devrais pouvoir faire la meme chose sous delphi en fesant une petite adaptation de code. Je te l'aurai bien fait mais la j'ai grave du taf. Si tu n'y arrives pas fais moi signe et je te ferrai ca ce soir.
Hyperlinks, collection d'objets
Représente la collection de liens hypertexte d'une plage ou d'une feuille de calcul. Chaque lien hypertexte est représenté par un objet Hyperlink.
Utilisation de la collection Hyperlinks
Utilisez la propriété Hyperlinks pour renvoyer la collection Hyperlinks. L'exemple suivant montre comment rechercher les liens hypertexte de la feuille de calcul 1 contenant le terme « Microsoft ».
For Each h in Worksheets(1).Hyperlinks
If Instr(h.Name, "Microsoft") <> 0 Then h.Follow
Next
Utilisez la méthode Add pour créer un lien hypertexte et l'ajouter à la collection Hyperlinks. L'exemple suivant montre comment créer un lien hypertexte pour la cellule E5.
yvessimon
Messages postés637Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 9 janvier 2017 11 juil. 2005 à 12:01
XL.range['B5'].HYPERLINKs.count; detecte la pésence ou non d'un lien hypertexte
Aolrs si le lien est présent il est possible de le relir
cs := XL.range['B5'].value ; --> texte de la cellule
cs := XL.range['B5'].HYPERLINKs[1].SubAddress; --> lien hypertexte
Par contre suivant les version excel ou autre la commande est differente, mais je ne sais ou trouver des explication claire sur ce point comme sur les tracés graphique dans excel via DELPHI
jmp77
Messages postés1119Date d'inscriptionlundi 4 février 2002StatutMembreDernière intervention 4 octobre 20067 13 déc. 2004 à 12:48
Hello,
Et bien la solution facile je pense serait de faire un test FileExsists si le lien pointe sur un fichier ou DirectoryExist si le lien pointe sur un dossier. Si le texte saisi n'est pas un lien ces deux fonctions te renverront False.
Millenod
Messages postés34Date d'inscriptionmardi 29 avril 2003StatutMembreDernière intervention21 septembre 2005 13 déc. 2004 à 13:22
J'ai du mal formuler ma question.
J'ai dans ma colonne1, les entrées suivantes :
- "projet 1". (sans lien hypertexte)
- "projet 2". (avec un lien hypertexte sur \\serveur\partage1)
- "projet 3" (avec un lien hypertexte sur \\serveur2\partage)
Quelle fonction puis-je utiliser pour savoir si une cellule possède un lien hypertexte? et quel lien celle-ci renvoie.
Vous n’avez pas trouvé la réponse que vous recherchez ?
jmp77
Messages postés1119Date d'inscriptionlundi 4 février 2002StatutMembreDernière intervention 4 octobre 20067 13 déc. 2004 à 13:29
Si tu fais :
If DirectoryExists('\\Serveur1\Partage1') then
//ici c'est un lien hypertexte et le lien fonctionne
else
//Ce n'est pas lien hypertexte ou le lien ne fonctionne pas ou plus
Millenod
Messages postés34Date d'inscriptionmardi 29 avril 2003StatutMembreDernière intervention21 septembre 2005 13 déc. 2004 à 13:59
voici un exemple :
tableau (les colonnessont séparées par des ';') :
le titre des colones :
Nom; demandeur; date; type
les données :
demande 1; X; 2004/12/01; objets x
extraction des chaines; Y; 2004/12/01; extraction
la cellule "demande 1", possède un lien hypertexte vers (\\serveur\extraction\mr_x)
la cellule "extraction des chaines" possède un lien hypertexte vers (\\serveur\extraction\chaine)
si je fais :
Procedure ExcelImportDemande;
var
classeur : _workbook;
feuille : _worksheet;
arrData : variant;
I : integer;
begin
excel.Connect;
classeur := excel.workbooks.open('liste.xls');
feuille := classeur.worksheets[1] as _Worksheet;
(* sélection de la plage des données *)
I:=12;
arrData := VarArrayCreate([0, (I-8-1), 0, 4], varOleStr]); //création d'une zone mémoire
arrData := Feuille.Range['A8', Feuille.Cells.Item[I,4]].Value2; // copie l'ensemble des données depuis la ligne 8
(**)
for I:=1 to I-8+1 do Begin
ShowMessage(arrData[I,1]);
End
end;
j'obtiens uniquement le titre des cellules de la colonne 1 :
demande 1, extraction des chaines
comment faire pour obtenir les valeurs : "\\serveur\extraction\mr_x", "\\serveur\extraction\chaine"
llwynrt
Messages postés1Date d'inscriptionjeudi 11 mars 2004StatutMembreDernière intervention18 février 2005 18 févr. 2005 à 11:10
bonjour
j'ai le même problème, je souhaite écrire des liens hypertexte dans un fichier excel.
j'ai essayé avec ce qui a été dit au dessus, mais je n'y arrive pas
peux-tu me donner ton code ?
Millenod
Messages postés34Date d'inscriptionmardi 29 avril 2003StatutMembreDernière intervention21 septembre 2005 11 juil. 2005 à 12:22
bonjour,
merci de voir que même après tant de temps, il y a toujours des personnes intéressées par ce code :)
je te remercie beaucoup.
je suis intéressé par tes documentations excel. celles de msdn, bien que complètes, ne sont pas aussi claires que celles de borland....
si tu veux bien nous les communiquer.