Bonsoir le forum.
Je bloque sur un problème de code ( mon niveau est assez moyen, je suis sous 2003 ).
Le sujet: une base de donnée
le problème:
1/une feuille unique qui contient la base de donnée
2/cette base de donnée est renseignée par un seul USF
3/plusieurs autres feuilles de travail.
Mais...
il y a plusieurs feuilles dans le workbook, chacune représentant un module de travail à part.Ormis différentes données, chaque feuille possède un bouton ouvrant l'USF unique ( toutes les feuilles partagent la même base de donnée ).
dans l'USF, un bouton avec le code suivant:
Application.ScreenUpdating = False
Sheets("base").Select
Dim x As Integer
x = Range("A65536").End(xlUp).Row + 1
Range("A" & x) = TextBox10.Value 'insert titre
Range("H" & x) = Format(UserForm1.ComboBox2.Value, "dd-mmm-yyyy") 'insert date
Range("D" & x) = TextBox5.Value 'insert durée
Range("I" & x) = ComboBox3.Value 'insert distrib
Range("J" & x) = TextBox6.Value 'insert notes
Range("K" & x) = TextBox2.Value 'insert stock
Range("E" & x) = CheckBox2.Value 'insert case a cocher VO
Range("F" & x) = CheckBox3.Value 'insert case a cocher TEASE
Range("G" & x) = CheckBox4.Value 'insert case a cocher TEASE VO
If TextBox10.Value = "" Then
MsgBox "Vous devez saisir au moins un titre !"
End If
Sheets("base").Select
Range("A2:M101").Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("A2").Select
unload Userform1
userform1.show
application.screenupdating=true
end sub
on remarque que pour insérer les données, je suis obligé à un moment donné de sélectionner la feuille "base".
lors du retour "application.screenupdating=true", je me retrouve donc avec la feuille "base" affichée. comment faire pour que :
peut importe la feuille sur l'aquelle on se trouve, l'USF renseigne la base de donnée lorsqu'on l'appelle, et reviens ensuite sur la feuille de travail en cours...
Pouvez vous me donner une piste??? ( avec "with" peut être, mais je n'arrive pas à formuler...)
un grand merci par avance.
Je bloque sur un problème de code ( mon niveau est assez moyen, je suis sous 2003 ).
Le sujet: une base de donnée
le problème:
1/une feuille unique qui contient la base de donnée
2/cette base de donnée est renseignée par un seul USF
3/plusieurs autres feuilles de travail.
Mais...
il y a plusieurs feuilles dans le workbook, chacune représentant un module de travail à part.Ormis différentes données, chaque feuille possède un bouton ouvrant l'USF unique ( toutes les feuilles partagent la même base de donnée ).
dans l'USF, un bouton avec le code suivant:
Application.ScreenUpdating = False
Sheets("base").Select
Dim x As Integer
x = Range("A65536").End(xlUp).Row + 1
Range("A" & x) = TextBox10.Value 'insert titre
Range("H" & x) = Format(UserForm1.ComboBox2.Value, "dd-mmm-yyyy") 'insert date
Range("D" & x) = TextBox5.Value 'insert durée
Range("I" & x) = ComboBox3.Value 'insert distrib
Range("J" & x) = TextBox6.Value 'insert notes
Range("K" & x) = TextBox2.Value 'insert stock
Range("E" & x) = CheckBox2.Value 'insert case a cocher VO
Range("F" & x) = CheckBox3.Value 'insert case a cocher TEASE
Range("G" & x) = CheckBox4.Value 'insert case a cocher TEASE VO
If TextBox10.Value = "" Then
MsgBox "Vous devez saisir au moins un titre !"
End If
Sheets("base").Select
Range("A2:M101").Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("A2").Select
unload Userform1
userform1.show
application.screenupdating=true
end sub
on remarque que pour insérer les données, je suis obligé à un moment donné de sélectionner la feuille "base".
lors du retour "application.screenupdating=true", je me retrouve donc avec la feuille "base" affichée. comment faire pour que :
peut importe la feuille sur l'aquelle on se trouve, l'USF renseigne la base de donnée lorsqu'on l'appelle, et reviens ensuite sur la feuille de travail en cours...
Pouvez vous me donner une piste??? ( avec "with" peut être, mais je n'arrive pas à formuler...)
un grand merci par avance.