Demande d'aide pour un USF VBA Excel

Demande d'aide pour un USF VBA Excel - VB/VBA/VBS - Programmation

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 :hello:

Reply

Marsh Posté le 22-12-2005 à 07:27:26   

Reply

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

Reply

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 @+ :hello:

Reply

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

Reply

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!!
@++
 

Reply

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

Reply

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
 
@+

Reply

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
@+

Reply

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.
 
 
 

Reply

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é
@+

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed