Problème de saisie d'info d'un UserForm

Résolu
Signaler
Messages postés
11
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
12 septembre 2007
-
Messages postés
11
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
12 septembre 2007
-
Bonjour à tous,

J'ai un  problème avec le code d'un fichier excel. Le problème est simple mais l'explication l'ai moins. Bon je me lance:

Le fichier excel est une base de donnée contenant plusieurs feuilles, une pour toutes les données saisies et 11 autres reprenant certaines données en fonction d'un critère (une feuille pour un critère).
Les informations sont saisies dans un UserForm.
Lorsque le UserForm est validé, les informations sont inscrites dans la 1ère feuille, ainsi que dans la feuille au critère correspondant.
(J'espère que c'est claire)

Mon problème est que certaines informations vont s'inscrire dans plusieurs feuilles et ceci de façon irregulière (un coup ça le fait, un coup ça le fait pas).
Voici à quoi resemble le code du UserForm:

Private Sub OK_Click()

UserForm1.Hide 'cache le formulaire


Sheets("Feuille1").Activate 'affiche la feuille 1


num = Sheets("Feuille1").Range("A65536").End(xlUp).Row + 1 'recherche la dernière ligne vide de la feuille 1



'inscription des données saisies dans le formulaire dans la feuille 1.
'Range désigne la colone et la ligne où vont s'iscrire les données.
'La ligne est désigné par la variable "num" dont la valeur est déterminé par la fonction précédente


Range("A" & num).Value = Info1.Text
Range("B" & num).Value = CDate(Datedujour.Value)
Range("C" & num).Value = Info2.Text
Range("D" & num).Value = Info3.Text
Range("E" & num).Value = Info4.Text
Range("F" & num).Value = Info5.Text
Range("G" & num).Value = Info6.Text
Range("H" & num).Value = Info7.Text
Range("I" & num).Value = Info8.Text
Range("J" & num).Value = Info9.Text
Range("K" & num).Value = Info10.Text
Range("L" & num).Value = Info11.Text



'transfère des données saisies en fonction de l'Info4 ou de l'Info8



'Cas de la feuille 2

If Range("I" & num).Value = "Critère1" Then'condition pour que l'inscription s'effectue
    Sheets("Feuille2").Activate
    num = Sheets("Feuille2").Range("A65536").End(xlUp).Row + 1
    Range("A" & num).Value = Info1.Text
    Range("B" & num).Value = Info3.Text
    Range("U" & num).Value = Info5.Text
    Sheets("Feuille1").Activate
End If



'Cas de la feuille 3

If Range("I" & num).Value = "Critère2" Then
    Sheets("Feuille3").Activate
    num = Sheets("Feuille3").Range("A65536").End(xlUp).Row + 1
    Range("A" & num).Value = Info1.Text
    Range("B" & num).Value = Info3.Text
    Range("S" & num).Value = Info6.Text
    Range("T" & num).Value = Info11.Text
    Range("U" & num).Value = Info5.Text
    Sheets("Feuille1").Activate
End If



'Cas des feuilles 4

If Range("E" & num).Value = "Critère3" Then
    Sheets("Feuille4").Activate
    num = Sheets("Feuille4").Range("A65536").End(xlUp).Row + 1
    Range("A" & num).Value = Info1.Text
    Range("B" & num).Value = Info6.Text
    Range("C" & num).Value = Info7.Text
    Range("O" & num).Value = Info11.Text
    Sheets("Saisie").Activate
End If
....etc,etc...

End Sub

Mes notion de code VBA sont plus que basique, je sait qu'il est possible de faire des boucles pour ne pas avoir à répéter le même code, mais je n'ai pas réussi à le faire. Mon problème vien peut-être de la??
J'espère avoir été assez claire dans mon explication.

En vous remerciant d'avance,

Swiss, la petite souris blanche perdu dans les codes.

Qui fait l'ange, fait la bête!

2 réponses

Messages postés
492
Date d'inscription
jeudi 5 avril 2007
Statut
Membre
Dernière intervention
2 juillet 2012
4
bonjour,


Dans tes textes 4 et 8 il faut entrer CritèreX ? ou les critères sont prédéfinis ?.
Il y aurait quelques améliorations a faire mais vu que les données copiées dans les feuilles sont différentes ton code peu rester tel quel.
Pour éviter l'inscription dans plusieur feuille mettre exit sub à la fin de chaque test de CritèreX.
A+
louis
Messages postés
11
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
12 septembre 2007

Salut lermite,

Tout d'abord merci pour ta réponse. La commende exit sub s'emble fonctionner, en tous cas il n'y a plus d'inscription multiple;)

Les textes 4 et 8 sont des critères prédéfinis qui sont saisies dans des ComboBox du UserForm.

Un grand merci pour ton aide

Swiss, la petite souris qui aperçoit le bout du tunel.

Qui fait l'ange, fait la bête!