VBA excel copier cellule avec lien hypertexte
Résolu/Fermé
A voir également:
- VBA excel copier cellule avec lien hypertexte
- Excel cellule couleur si condition texte - Guide
- Lien url - Guide
- Aller à la ligne dans une cellule excel - Guide
- Liste déroulante excel - Guide
- Verrouiller cellule excel - Guide
6 réponses
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 249
24 sept. 2011 à 11:56
24 sept. 2011 à 11:56
Bonjour,
Selection est un mot clé de vba, tu n'as pas le droit de l'utiliser en nom de variable.
Et tu peux alléger ton code, tu as des .select et .copy inutiles
eric
Selection est un mot clé de vba, tu n'as pas le droit de l'utiliser en nom de variable.
Et tu peux alléger ton code, tu as des .select et .copy inutiles
eric
J'ai essayé de remplacer par Sel, comme tu me le suggères. Sans succès. J'avais essayé aussi avec Anchor.
Mon fichier épuré est disponible sur :
http://www.cijoint.fr/cjlink.php?file=cj201109/cijY07VilL.xls
J'explique le fonctionnement en page d'accueil.
Je te remercie par avance pour ton aide. Va quand même profiter du soleil de cette belle journée.
Jean
Mon fichier épuré est disponible sur :
http://www.cijoint.fr/cjlink.php?file=cj201109/cijY07VilL.xls
J'explique le fonctionnement en page d'accueil.
Je te remercie par avance pour ton aide. Va quand même profiter du soleil de cette belle journée.
Jean
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 249
24 sept. 2011 à 15:35
24 sept. 2011 à 15:35
re,
ton code corrigé :
J'ai fait le lien hypertexte et modifié aussi un peu les 1ères lignes (5 lignes alors que 2 suffisent).
Quand tu es dans un With Sheets("B_Client"), il faut remplacer le nom de la feuille par un . : anchor:=.Range(...
eric
ton code corrigé :
Sub Creation_Client() 'création du numéro client Dim NumClient As Integer NumClient = [Num_An!C4] + 1 [Num_An!C4] = NumClient 'identifier une ligne libre et copier les données (C_Client = formulaire de saisie & B_Client = Base de données) Dim lig As Integer With Sheets("B_Client") lig = .Columns("A").Find("", .Range("A3"), xlValues).Row .Cells(lig, "A").Resize(1, 27) = Application.Transpose(Sheets("C_Client").Range("C2:C28").Value) .Range("A3:AA" & lig).Sort .Range("A3") 'création du lien hypertexte du site internet Sheets("B_Client").Hyperlinks.Add anchor:=.Range("P" & lig), Address:="http://" & [C_Client!C17] End With 'trier les articles par ordre croissant Range("A3:AA3").Select Range(Selection, Selection.End(xlDown)).Select Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, Header:=xlNo, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom 'rendre vierge le formulaire With Sheets("C_Client") .Range("c2").ClearContents .Range("c5:c10").ClearContents .Range("c13").Value = "FRANCE" .Range("C23").Value = "FRANCE" End With 'revenir sur la feuille Base Clients Sheets("B_Client").Activate Range("A2").Select End Sub
J'ai fait le lien hypertexte et modifié aussi un peu les 1ères lignes (5 lignes alors que 2 suffisent).
Quand tu es dans un With Sheets("B_Client"), il faut remplacer le nom de la feuille par un . : anchor:=.Range(...
eric
Merci beaucoup, Eric, car ta solution fonctionne parfaitement. C'est beau de savoir !
J'ai par contre un souci avec le tri.
J'ai effacé tous les enregistrements de ma base pour repartir à 0.
Lorsque j'entre le 1er client, les infos vont bien sur la première ligne, sauf le site internet qui s'affiche sur la seconde ligne
Lorsque j'entre le 2d client, cela revient dans l'ordre.
Par contre, après j'ai créé un client qui s'insère entre les deux premiers, et là, il colle bien le site internet mais sans le lien.
Est-ce que le fait que je commence en ligne 3 et non en ligne 2 peut provoquer une erreur ?
Sinon, ma méthode de tri n'est peut être pas la bonne.
Comme tu as pu le remarquer, je débute sur VBA, que je trouve super. J'ai trouvé quelques tutoriels sympa mais on a vite les yeux plus gros que le ventre !
J'ai par contre un souci avec le tri.
J'ai effacé tous les enregistrements de ma base pour repartir à 0.
Lorsque j'entre le 1er client, les infos vont bien sur la première ligne, sauf le site internet qui s'affiche sur la seconde ligne
Lorsque j'entre le 2d client, cela revient dans l'ordre.
Par contre, après j'ai créé un client qui s'insère entre les deux premiers, et là, il colle bien le site internet mais sans le lien.
Est-ce que le fait que je commence en ligne 3 et non en ligne 2 peut provoquer une erreur ?
Sinon, ma méthode de tri n'est peut être pas la bonne.
Comme tu as pu le remarquer, je débute sur VBA, que je trouve super. J'ai trouvé quelques tutoriels sympa mais on a vite les yeux plus gros que le ventre !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 249
24 sept. 2011 à 20:25
24 sept. 2011 à 20:25
Re,
Déjà je ne ferais pas .find pour la première ligne libre mais :
lig= .[A65536].end(xlup).row+1
(c'est l'équivalent de ctrl+fleche haut, en partant du bas, qui t'amène sur le dernière ligne remplie. +1 pour la suivante. C'est juste une question de vitesse, mais c'est bien que tu aies vu le .find, ça te resservira ;-) ))
Ensuite tu dois tout coller : données et lien.
Seulement après tu peux trier (tu as un .sort qui se balade au milieu, lig ne pointe plus sur la bonne ligne...)
eric
Déjà je ne ferais pas .find pour la première ligne libre mais :
lig= .[A65536].end(xlup).row+1
(c'est l'équivalent de ctrl+fleche haut, en partant du bas, qui t'amène sur le dernière ligne remplie. +1 pour la suivante. C'est juste une question de vitesse, mais c'est bien que tu aies vu le .find, ça te resservira ;-) ))
Ensuite tu dois tout coller : données et lien.
Seulement après tu peux trier (tu as un .sort qui se balade au milieu, lig ne pointe plus sur la bonne ligne...)
eric
24 sept. 2011 à 12:24
Modifié par eriiic le 24/09/2011 à 12:58
Pour le reste avec un fichier joint (allégé et anonymisé) pour ne pas à avoir à tout refaire on pourra modifier ton code.
cijoint.fr et coller ici le lien fourni
eric