J'ai office XP. J'ai essayé de faire le formulaire en suivant pas à pas mais il n'y a rien à faire lorsque je recopie le listing 1 ou 2, cela ne fonctionne pas. Erreur de parenthèses entre autre....bref je ne maitrise pas le VBA et je ne vois pas l'erreur !
Merci de vos lumières
-->Message édité par Helger le 08/09/2008 10:17:24<--
J'ai effectué toutes les corrections plus qq autres mais le formulaire ne fonctionne tjs pas correctement
1. les info se décalement d'une colonne (le nom à la place du prénom, le prénom à la place du sexe etc)
2. le formulaire se ferme après la 1ere saisie (quel est l'intérêt de faire un formulaire pour une seule saisie ?)
3. du coup, il recommence toujours à la ligne 2 et efface le précédent enregistrement au lieu de descendre d'une ligne à chaque nouvel enregistrement
donc il doit manquer qq instructions...
merci de votre aide. C'est super : je galère mais je progresse!
Bonjour, si tu as bien suivi toutes les instructions notées sur OI, le code ci après fonctionne très bien sur mon ordi:
Sub saisie()
Range("A1").Select
If Range("A2") = "" Then
Range("A1").Select
Else
Range("A1").Select: Selection.End(xlDown).Select
End If
ActiveCell.Offset(1, 0).Range("A1").Select
With FrmSaisie
' alimentation liste des régions
.lstregion.AddItem "Est"
.lstregion.AddItem "Nord"
.lstregion.AddItem "Ouest"
.lstregion.AddItem "Sud"
.lstregion.AddItem "Centre"
.lstregion.AddItem "Paris"
' alimentation liste des spécialités
.lstspecialites.AddItem "Avions"
.lstspecialites.AddItem "Bateaux"
.lstspecialites.AddItem "Trains"
.lstspecialites.AddItem "Voitures"
.Show
End With
End Sub
Merci de tes corrections; cela fonctionne bcp mieux. Cependant, le formulaire se ferme toujours à la fin de la 1ère saisie.... il manque donc l'instruction pour faire boucle.... jusqu'à la fin de la saisie.
Merci d'avance
Bonjour, as-tu bien entré le code pour chaque bouton (OK et Annuler) ?
Private Sub btnannuler_Click()
Unload Me
End Sub
Private Sub btnok_Click()
While Not IsNumeric(txtcotisation)
txtcotisation = InputBox("Valeur numerique pour la cotisation, svp")
Wend
With ActiveCell
.Offset(0, 0).Value = UCase(txtnom)
.Offset(0, 1).Value = txtprenom
If Opthomme Then
.Offset(0, 2).Value = "M"
Else
.Offset(0, 2).Value = "F"
End If
.Offset(0, 3).Value = txtcotisation
.Offset(0, 4).Value = lstspecialites.Value
.Offset(0, 5).Value = lstregion.Value
End With
Unload Me
End Sub
Pour améliorer, j'ai remanié les listings 1 et 2 comme suit:
Sub saisie()
With FrmSaisie
' alimentation liste des régions
.lstregion.AddItem "Est"
.lstregion.AddItem "Nord"
.lstregion.AddItem "Ouest"
.lstregion.AddItem "Sud"
.lstregion.AddItem "Centre"
.lstregion.AddItem "Paris"
' alimentation liste des spécialités
.lstspecialites.AddItem "Avions"
.lstspecialites.AddItem "Bateaux"
.lstspecialites.AddItem "Trains"
.lstspecialites.AddItem "Voitures"
.Show
End With
End Sub
Private Sub btnok_Click()
Range("A2").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
While Not IsNumeric(txtcotisation)
txtcotisation = InputBox("Valeur numerique pour la cotisation, svp")
Wend
With ActiveCell
.Offset(0, 0).Value = UCase(txtnom)
.Offset(0, 1).Value = txtprenom
If Opthomme Then
.Offset(0, 2).Value = "M"
Else
.Offset(0, 2).Value = "F"
End If
.Offset(0, 3).Value = txtcotisation
.Offset(0, 4).Value = lstspecialites.Value
.Offset(0, 5).Value = lstregion.Value
End With
txtnom.Value = ""
txtprenom.Value = ""
txtcotisation.Value = ""
lstspecialites.Value = ""
lstregion.Value = ""
Opthomme.Value = ""
Optfemme.Value = ""
End Sub
Je n'ai pas encore trouvé l'instruction pour mettre le curseur dans le champs "Nom" à chaque nouvel enregistrement !
A+
Bonjour, ça y est! A la fin du programme, remplacer les 2 instructions de réinitialisation et ajouter celle qui met le curseur dans le champs "txtnom":
Opthomme.Value = False
Optfemme.Value = False
txtnom.SetFocus
A bientôt.
Bonjour, ça y est! A la fin du programme, remplacer les 2 instructions de réinitialisation et ajouter celle qui met le curseur dans le champs "txtnom":
Opthomme.Value = False
Optfemme.Value = False
txtnom.SetFocus
A bientôt.
Bonjour. Pour placer le curseur dans le champs "TxtNom" dès l'ouverture du formulaire, il suffit de mettre la propriété TabIndex à 1.