Demande d'aide pour un USF VBA Excel - VB/VBA/VBS - Programmation
Marsh Posté le 22-12-2005 à 10:22:02
Salut Novasim,
J'ai eu un cas similaire au tien,
utilise ce code et normalement ca va marcher
le Userform contient trois textbox 1, 2 et 3 (valeurs des colonnes B C D) ainsi qu'un bouton commandbutton1 qui valide les données
Private Sub commandbutton1_Click()
Sheets("Feuille1" ).Select
If Range("a3" ).Value = "" Then
décalage = 0
Range("a3" ).Select
Else
décalage = 1
Position = Range("A2" ).End(xlDown).Address
Range(Position).Select
Range("A2" ).End(xlDown).Select
End If
'pour remplir la colonne A avec un numero qui s'incremente a chaque click
ActiveCell.Offset(décalage, 0).Range("a1" ).Select
ActiveCell.Value = ActiveCell.Row - 1
ActiveCell.Offset(0, 1).Range("a1" ).Select
ActiveCell.Value = Textbox1.text
ActiveCell.Offset(0, 1).Range("a1" ).Select
ActiveCell.Value = Textbox2.text
ActiveCell.Offset(0, 1).Range("a1" ).Select
ActiveCell.Value = Textbox3.text
End Sub
Marsh Posté le 22-12-2005 à 10:32:58
Salut tunisiano8
C'est super sympa de me répondre.
Je vais essayer ton code de suite et te tiens au courant
Merci @+
Marsh Posté le 22-12-2005 à 10:52:18
Resalut Tunisiano8,
J'ai oublié de te dire que dans ma feuille excel j'ai déja environ 700 valeurs.J'ai mis ton code et adapter mais quand je clique sur le bouton valider,
les données colonne B C D c'est ok mais rien dans la colonne A.
je te met mon code ci dessous si tu veux bien jeter un oeil et me dire ce qui ne va pas
merci
Private Sub CmdOK_Click()
'Bouton validation des données
'contrôle des champs numérique
If Not IsNumeric(TxtNumeroChantier.Text) Then
MsgBox "Vous devez entrer un nombre dans le champ - Numéro du chantier."
TxtNumeroChantier.Text = ""
TxtNumeroChantier.SetFocus
Exit Sub
With usfNouveauChantiers
.TxtNumeroChantier.Text = ""
.TxtNomChantier.Text = ""
.TxtChargeAffaires.Text = ""
End With
Sheets("Chantiers" ).Select
If Range("a3" ).Value = "" Then
décalage = 0
Range("a3" ).Select
Else
décalage = 1
Position = Range("A2" ).End(xlDown).Address
Range(Position).Select
Range("A2" ).End(xlDown).Select
End If
'pour remplir la colonne A avec un numero qui s'incremente a chaque click
ActiveCell.Offset(décalage, 0).Range("a1" ).Select
ActiveCell.Value = ActiveCell.Row - 1
ActiveCell.Offset(0, 1).Range("a1" ).Select
ActiveCell.Value = TxtNumeroChantier.Text
ActiveCell.Offset(0, 1).Range("a1" ).Select
ActiveCell.Value = TxtNomChantier.Text
ActiveCell.Offset(0, 1).Range("a1" ).Select
ActiveCell.Value = TxtChargeAffaires.Text
End If
End Sub
Marsh Posté le 22-12-2005 à 11:12:36
resalut,
remplace les A2 en A3 dans
Else
décalage = 1
Position = Range("A2" ).End(xlDown).Address
Range(Position).Select
Range("A2" ).End(xlDown).Select
End If
je l'ai essayé et ca marche!!
@++
Marsh Posté le 22-12-2005 à 11:33:57
Resalut,
désolé mais chez moi çà ne fonctionne pas, même mes valeurs dans le USF ne se vide plus et dans la feuille plus rien ne s'inscrit.
J'ai du "merder" quelque part mais ou ??
Vraiment désolé de tembeter avec mon problème!!!
Private Sub CmdOK_Click()
'Bouton validation des données
'contrôle des champs numérique
If Not IsNumeric(TxtNumeroChantier.Text) Then
MsgBox "Vous devez entrer un nombre dans le champ - Numéro du chantier."
TxtNumeroChantier.Text = ""
TxtNumeroChantier.SetFocus
Exit Sub
With usfNouveauChantiers
.TxtNumeroChantier.Text = ""
.TxtNomChantier.Text = ""
.TxtChargeAffaires.Text = ""
End With
Sheets("Chantiers" ).Select
If Range("a3" ).Value = "" Then
décalage = 0
Range("a3" ).Select
Else
décalage = 1
Position = Range("A3" ).End(xlDown).Address
Range(Position).Select
Range("A3" ).End(xlDown).Select
End If
'pour remplir la colonne A avec un numero qui s'incremente a chaque click
ActiveCell.Offset(décalage, 0).Range("a1" ).Select
ActiveCell.Value = ActiveCell.Row - 1
ActiveCell.Offset(0, 1).Range("a1" ).Select
ActiveCell.Value = TxtNumeroChantier.Text
ActiveCell.Offset(0, 1).Range("a1" ).Select
ActiveCell.Value = TxtNomChantier.Text
ActiveCell.Offset(0, 1).Range("a1" ).Select
ActiveCell.Value = TxtChargeAffaires.Text
End If
End Sub
Marsh Posté le 22-12-2005 à 12:03:11
Slt,
Ouvre une nouvelle feuille excel et crée un USF avec un bouton et 3 textbox et essaie ce code et regarde si ca repond a ton besoin.
Private Sub commandbutton1_Click()
Sheets("Feuil1" ).Select
If Range("a2" ).Value = "" Then
décalage = 0
Range("a2" ).Select
Else
décalage = 1
Position = Range("A2" ).End(xlDown).Address
Range(Position).Select
Range("A2" ).End(xlDown).Select
End If
'pour remplir la colonne A avec un numero qui s'incremente a chaque click
ActiveCell.Offset(décalage, 0).Range("a1" ).Select
ActiveCell.Value = ActiveCell.Row - 1
ActiveCell.Offset(0, 1).Range("a1" ).Select
ActiveCell.Value = TextBox1.Text
ActiveCell.Offset(0, 1).Range("a1" ).Select
ActiveCell.Value = TextBox2.Text
ActiveCell.Offset(0, 1).Range("a1" ).Select
ActiveCell.Value = TextBox3.Text
End Sub
@+
Marsh Posté le 22-12-2005 à 13:25:18
Salut Tunisiano8,
Cà fonctionne dans mon projet, merci c'est super sympa
par contre ,j'ai du modifier la ligne : Sheets("Feuil1" ).Select par . Activate ????????
L'essentiel c'est que çà fonctionne.
Encore une petite question, si tu veux bien:
imagine que l'on rentre dans la textbox 1 une valeur numérique( par exemple cela sera des n° de chantiers: 2678 ; 2536 ect...) et que l'on ne les rentrent pas dans l'ordre
Est ce qu'il serait possible de faire un tri du plus petit vers le plus grand automatiquement (bien entendu que les autres cellules suivent)????
Merci encore pour ton aide
@+
Marsh Posté le 22-12-2005 à 13:53:12
Désolé Novasim,
j'ai pas de solution pour ce pb,moi je trie les infos avec la fonction trier d'excel mais si qq1 a une idée je suis preneur.
Tunisiano.
Marsh Posté le 22-12-2005 à 14:06:53
Pas de problème, si je trouve quelque chose, je te ferai signe sur ce forum
merci pour m'avoir aidé
@+
Marsh Posté le 22-12-2005 à 07:27:26
Bonjour à tous,
voila mon problème et si quelqu'un pourrait m'aider çà serait sympa.
J'ai créer un Userform pour pouvoir entrer directement des valeurs dans une feuille XL.
Dans la feuille j'ai 4 colonnes ( A B C D). Dans le USF j'ai 3 textbox dans lesquelles je rentre les valeurs pour les colonnes B C D.
J'aimerai que quand je valide les données du USF, que dans la colonne 1 de la feuille s'inscrive automatiquement une valeur.
Par exemple : je valide mes premières valeurs dans l'USF donc il faudrait en A2 = 1; si je rentre de nouvelles valeurs dans le USF A3 = 2 ect.....
Clair n'est il pas ?????
Le code pour renter les valeurs du USF vers la feuille est OK aussi pour écrire de ligne en ligne mais c'est l'incrémentation de la colonne 1 qui me pose problème
donc si quelqu'un à une idée et qu'il veut bien m'aider !!!!
Merci d'avance