Pb avec excel et vb

Fermé
butters9547 Messages postés 208 Date d'inscription mardi 9 juin 2009 Statut Membre Dernière intervention 27 août 2013 - 9 juin 2009 à 17:00
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 - 10 juin 2009 à 10:44
Bonjour,
alors voilà mon problème :
j'ai crée un formulaire excel avec des textbox et checbox et un boutton commande qui lorsque je clique me met les informations saisie dans une feuille excel, (pour plus d'info) : voici le code

Private Sub cmdcreer_Click()
Dim conf

' Contrôle de saisie du nom.

If Me.Txtnom.Text = "" Then 'si le champ de saisie du nom est vide alors'
Beep 'bip sonore'
MsgBox "Vous devez entrer un nom." 'fenêtre d'information qui prévient qu'il faut saisir un nom'
Me.Txtnom.SetFocus
Exit Sub
End If
' Contrôle de saisie du prénom.
If Me.Txtprenom.Text = "" Then 'si le champ de saisie du prénom est vide alors'
Beep 'un bip sonore'
MsgBox "Vous devez entrer un prénom." 'une fenête apparait et préviens qu'il faut saisir un prénom'
Me.Txtprenom.SetFocus
Exit Sub
End If
'Contrôle de saisie de la date de validité'
If Me.CheckBox5.Value = True And Me.Txtvalidite = "" Then
Beep
MsgBox "Vous devez saisir une date de validité."
Me.Txtvalidite.SetFocus
Exit Sub
End If
' Mise en place des données dans la feuille de calcul Excel'

AppExcel.Worksheets("Feuil1").Hyperlinks.Add Anchor:=Range("B65536").End(x1up).Offset(1, 0).Value = Me.Txtnom.Text, _
SubAddress:="feuil1!B2"





'colonne des arrivées'
Sheets("Feuil1").Range("B65536").End(xlUp).Offset(1, 0).Value = Me.Txtnom.Text
Sheets("Feuil1").Range("C65536").End(xlUp).Offset(1, 0).Value = Me.Txtprenom.Text
Sheets("Feuil1").Range("D65536").End(xlUp).Offset(1, 0).Value = Me.Txtdatearrive.Text
Sheets("Feuil1").Range("E65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox1.Value
Sheets("Feuil1").Range("F65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox3.Value
Sheets("Feuil1").Range("G65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox4.Value
Sheets("Feuil1").Range("H65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox5.Value
Sheets("Feuil1").Range("I65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox6.Value
Sheets("Feuil1").Range("J65536").End(xlUp).Offset(1, 0).Value = Me.Txtvalidite.Text
Sheets("Feuil1").Range("K65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox7.Value
Sheets("Feuil1").Range("L65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox8.Value
Sheets("Feuil1").Range("M65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox9.Value
Sheets("Feuil1").Range("N65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox10.Value
Sheets("Feuil1").Range("O65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox11.Value
Sheets("Feuil1").Range("P65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox12.Value
Sheets("Feuil1").Range("Q65536").End(xlUp).Offset(1, 0).Value = Me.Txtacces.Text
Sheets("Feuil1").Range("R65536").End(xlUp).Offset(1, 0).Value = Me.Txtemp.Text



'colonne des départs'
Sheets("Feuil1").Range("T65536").End(xlUp).Offset(1, 0).Value = Me.Txtdatedepart.Text
Sheets("Feuil1").Range("U65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox23.Value
Sheets("Feuil1").Range("V65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox24.Value
Sheets("Feuil1").Range("W65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox25.Value
Sheets("Feuil1").Range("X65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox26.Value
Sheets("Feuil1").Range("Y65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox27.Value
Sheets("Feuil1").Range("Z65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox28.Value
Sheets("Feuil1").Range("AA65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox29.Value
Sheets("Feuil1").Range("AB65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox30.Value
Sheets("Feuil1").Range("AC65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox31.Value
Sheets("Feuil1").Range("AD65536").End(xlUp).Offset(1, 0).Value = Me.CheckBox32.Value



Unload Me 'De cette façon, à la prochaine saisie, les textbox seront vides à l'ouverture'
'message de confirmation de la saisie'
conf = MsgBox("saisie correctement effectuée", vbInformation + vbYes + 256, "Confirmation")




End Sub

donc ce que j'aimerais c'est que à chaque fois qu'une nouvelle ligne est ajouté, que sur la colonne B, c'est à dire les noms, un lien hypertext ou un double clique me permette d'accéder à ce même formulaire pour pouvoir faire une mise à jour.

voila tout, j'espère avoir été clair.
merci d'avance de votre aide.
A voir également:

3 réponses

pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 643
9 juin 2009 à 18:30
Bonjour,

Peut-être ceci :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 2 Then
    ' Appel du formulaire
End If
End Sub


A mettre dans le code associé à la feuille de saisie.

A+
0
butters9547 Messages postés 208 Date d'inscription mardi 9 juin 2009 Statut Membre Dernière intervention 27 août 2013 6
10 juin 2009 à 08:46
je comprend pas bien ou il faut le mettre, car si je remplace ma ligne :
Private Sub cmdcreer_Click()

par ce que tu ma donnée : Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

ba je peux plus cliquer.
après peut être que j'ai oublié de faire quelque chose.....
merci
0
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 643
10 juin 2009 à 10:44
Bonjour,

Non, il ne s'agit pas de remplacer la fonction cmdcreer_Click() mais de prendre la fonction que j'ai donné et de la copier dans ta feuille de saisie. En faisant par exemple clic droit sur l'onglet de la feuille et "Visualiser le code" puis coller le code suivant :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 2 Then
    UserForm1.Show
End If
End Sub

Ton formulaire, pour le faire apparaitre, tu dois avoir une instruction du type Userform1.show avec à la place de Userform1 le nom de ton formulaire.

Ainsi quand tu double clique dan ta colonne B, le formulaire apparait.

A moins que je n'ai pas bien compris ta demande

A+
0