Userform ... Boutton validation

Dranreb

XLDnaute Barbatruc
Re : Userform ... Boutton validation

C'est dans la fenêtre de propriété, généralement la 1ère (Name)
En changeant ListBox1 en LbxSélect, voici un code complet possible pour tout l'userform :
VB:
Option Explicit
Dim WithEvents CL As ComboBoxLiés
Dim TLgn() As Long

Private Sub UserForm_Initialize()
Set CL = New ComboBoxLiés
CL.CorrespRequise = True
CL.Plage Feuil3.Rows(3)
CL.Add Me.ComboBox1, "F"
CL.Add Me.ComboBox2, "E"
CL.Add Me.ComboBox3, "N"
CL.Add Me.ComboBox4, "G"
CL.Add Me.ComboBox5, "J"
CL.Add Me.ComboBox6, "M"
CL.Add Me.ComboBox7, "H"
CL.Add Me.ComboBox8, "K"
CL.Actualiser
End Sub

Private Sub CL_Change(ByVal Complet As Boolean, ByVal NbrLgn As Long)
If NbrLgn = 0 Then LbxSélect.Clear: ReDim TLgn(0 To 0): CommandButton1.Enabled = False
End Sub

Private Sub CL_Résultat(Lignes() As Long)
Dim Te(), Le&, Ts(), Ls&, C&
TLgn = Lignes
Te = CL.PlgTablo.Resize(, 15).Value
ReDim Ts(0 To UBound(TLgn) - 1, 0 To 14)
For Ls = 0 To UBound(Ts, 1)
   Le = Lignes(Ls + 1)
   For C = 0 To UBound(Ts, 2)
      Ts(Ls, C) = Te(Le, C + 1)
      Next C, Ls
Me.LbxSélect.List = Ts
CommandButton1.Enabled = False
End Sub

Private Sub LbxSélect_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Dim N&
For N = 0 To LbxSélect.ListCount - 1
   If LbxSélect.Selected(N) Then CommandButton1.Enabled = True: Exit Sub
   Next N: CommandButton1.Enabled = False
End Sub

Private Sub CommandButton1_Click()
Dim Te(), Le&, Ts(), Ls&, C&, N&, Cible As Range
Te = CL.PlgTablo.Resize(, 15).Value
ReDim Ts(1 To 500, 1 To 15)
For N = 0 To LbxSélect.ListCount - 1
   If LbxSélect.Selected(N) Then
      Le = TLgn(N + 1): Ls = Ls + 1
      For C = 1 To 15: Ts(Ls, C) = Te(Le, C): Next C
      End If: Next N
Set Cible = PlgUti(Feuil1.[A1])
Cible.Offset(Cible.Rows.Count).Resize(Ls, 15).Value = Ts
End Sub
 

Cap_ou_pas_cap

XLDnaute Junior
Re : Userform ... Boutton validation

Merci beaucoup,

Effectivement cela fonction !!!

Je me demandais si il etait possible quand on valide le resultat et qu'il s'affiche sur la feuille l'exel d'obtenir aussi un lien hypertexte qui est donné dans base de depart car la il me mets juste le nom du lien mais je peuxp as y acceder je sais pas si cela ma qusetion est clair
 

Dranreb

XLDnaute Barbatruc
Re : Userform ... Boutton validation

Ce serait trop lent je pense.
Je préfèrerais écrire une Worksheet.SelectionChange dans la feuille qui utiliserait la méthode FolowHyperlink de l'objet Workbook (ThisWorkbook en l’occurrence)
 

Cap_ou_pas_cap

XLDnaute Junior
Re : Userform ... Boutton validation

C'est dire faire un code orksheet_SelectionChange qui va incepter le lien a partir du moment ou je vais selection le resultats ?
 

Dranreb

XLDnaute Barbatruc
Re : Userform ... Boutton validation

Oui :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Column <> ? Then Exit Sub ' À adapter
On Error Resume Next
ThisWorkbook.FollowHyperlink "MailTo:" & Target.Value
End Sub
À tester
 

Cap_ou_pas_cap

XLDnaute Junior
Re : Userform ... Boutton validation

D'accord Merci,

Je viens de l'essayer rien ne se produit je sais pas si je l'ai bien ecrit par exemple a la place devre ? j'ia A car le lien et ratttaché a celle la.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Column <> A Then Exit Sub ' À adapter
On Error Resume Next
ThisWorkbook.FollowHyperlink "MailTo:" & Target.Value
End Sub
 

Dranreb

XLDnaute Barbatruc
Re : Userform ... Boutton validation

Non il faut un numéro de colonne. Celle contenant l'adresse courriel du correspondant. 1 donc.
 

Dranreb

XLDnaute Barbatruc
Re : Userform ... Boutton validation

Mettez en commentaire le On Error Resume Next, qu'on voit quelle erreur se produit.
Vous avez naturellement bien compris que ça se met dans le module de la feuille, pas ailleurs ?
Ni dans un module ordinaire, ni dans l'Userform bien évidemment !
Le mieux c'est peut être depuis Excel de faire un clic droit sur l'onglet et: Visualiser le code.
 
Dernière édition:

Cap_ou_pas_cap

XLDnaute Junior
Re : Userform ... Boutton validation

Bonjour,

Oui bien sur j'ai mis le code sur la feuille ou le lien hypertexte est connu,

Il me met aucune erreur sauf que quand je fais la manipulation du resultat le lien ne viens toujorus pas s'accrocher
 

Cap_ou_pas_cap

XLDnaute Junior
Re : Userform ... Boutton validation

Mais bizarrement quand je clique du coup sur la collonne A ca m'envoie directement sur un mail mais pas avec le lien hypertexte
 

Dranreb

XLDnaute Barbatruc
Re : Userform ... Boutton validation

Bonjour.

C'était le but. Se débarrasser de ces liens hypertexte tout en bénéficiant de la même fonctionnalité.
 

Cap_ou_pas_cap

XLDnaute Junior
Re : Userform ... Boutton validation

D'accord sauf que par exemple ! dans mon tableau de base de mets le lien hypertexte que je nomme Fichier qui est censé ouvrir un document. Qaund j'applique le code il m'envoie un mail avec destinaire le mot Fichier et en aucun cas je ne vois pas le lien hypertexte
 

Cap_ou_pas_cap

XLDnaute Junior
Re : Userform ... Boutton validation

On peut essayer je avec le code normal c'est a dire sortir le resultat avec le lien hypertexte pour voir comment ca marche ?
 

Dranreb

XLDnaute Barbatruc
Re : Userform ... Boutton validation

Je suis tellement hostile aux lien hypertextes dans les feuilles que je ne vous le dirai pas. Essayez en mettant "File:" au lieu de "MailTo:", voire rien, je ne savais pas que c'était une référence de fichier.
 

Cap_ou_pas_cap

XLDnaute Junior
Re : Userform ... Boutton validation

D'accord ...

C'est juste que j'ai besoin de faire un lien hypertexte pour allez cherche la fiche produit de mon resultat car j'ai une chose des parties les plus importantes des mon logiciel exel ...
 

Dranreb

XLDnaute Barbatruc
Re : Userform ... Boutton validation

Non, vous avez besoin d'ouvrir le fichier quand on sélectionne la cellule contenant son nom, c'est tout.
Et ça la méthode FollowHyperlink permet de le faire.
 
Dernière édition:

Cap_ou_pas_cap

XLDnaute Junior
Re : Userform ... Boutton validation

Oui j'ai compris merci =).

J'ai juste que le code ne marche pas je sais pas peut etre que le lien ne suis pas ou que le code ne fonctionne pas correctement.
 

Dranreb

XLDnaute Barbatruc
Re : Userform ... Boutton validation

Par exemple cette procédure écrite en 15 seconde a fonctionné du premier coup :
VB:
Sub TestFolH()
ChDrive ThisWorkbook.Path: ChDir ThisWorkbook.Path
ThisWorkbook.FollowHyperlink "File:" & Dir("VBA*")
End Sub
Elle m'a bien ouvert avec Acrobat Reader un fichier PDF situé dans le même dossier que le classeur portant la macro et dont le nom commençait par "VBA"
 

Cap_ou_pas_cap

XLDnaute Junior
Re : Userform ... Boutton validation

Bonjour Dranreb,

J'ai essaye donc j'ai ecrit le code suivant :

Sub TestFolH()
ChDrive ThisWorkbook.Path: ChDir ThisWorkbook.Path
ThisWorkbook.FollowHyperlink "File:" & Dir("Fiche technique*")
End Sub

Car le lien ou doit se trouve le lien hypertexte s'apelle Fiche technique j'ia placé le code dans le classeur pour j'applique la macro donc ou le resultat apparait mais rien aucun resultat quand le clique sur fiche technique le fichier pdf ne suit pas ...

Cordialement
 

Discussions similaires


Haut Bas