Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
843 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Demande d'aide pour un USF VBA Excel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Demande d'aide pour un USF VBA Excel

n°1271629
Novasim220
Posté le 22-12-2005 à 07:27:26  profilanswer
 

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:

mood
Publicité
Posté le 22-12-2005 à 07:27:26  profilanswer
 

n°1271670
tunisiano8
Murphy is back
Posté le 22-12-2005 à 10:22:02  profilanswer
 

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

n°1271674
Novasim220
Posté le 22-12-2005 à 10:32:58  profilanswer
 

Salut tunisiano8
C'est super sympa de me répondre.
Je vais essayer ton code de suite et te tiens au courant
Merci @+ :hello:

n°1271679
Novasim220
Posté le 22-12-2005 à 10:52:18  profilanswer
 

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

n°1271686
tunisiano8
Murphy is back
Posté le 22-12-2005 à 11:12:36  profilanswer
 

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

n°1271700
Novasim220
Posté le 22-12-2005 à 11:33:57  profilanswer
 

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

n°1271723
tunisiano8
Murphy is back
Posté le 22-12-2005 à 12:03:11  profilanswer
 

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

n°1271760
Novasim220
Posté le 22-12-2005 à 13:25:18  profilanswer
 

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

n°1271773
tunisiano8
Murphy is back
Posté le 22-12-2005 à 13:53:12  profilanswer
 

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.
 
 
 

n°1271785
Novasim220
Posté le 22-12-2005 à 14:06:53  profilanswer
 

Pas de problème, si je trouve quelque chose, je te ferai signe sur ce forum
merci pour m'avoir aidé
@+


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Demande d'aide pour un USF VBA Excel

 

Sujets relatifs
[VBA Excel] Macro excel en batch?[VBA Excel] Comment créer un degradé de couleurs dans des cellules?
[VBA POWERPOINT] impossible userform3.show ?Besoin d'aide, difficile d'expliquer en fait, venez voir
[VBA] Charger des fichiers automatiquement dans une/des tables AccessVBA Excel : récupérer le nom des feuilles
VBA: macro qui se lance apres modif de certaines cell 
Plus de sujets relatifs à : Demande d'aide pour un USF VBA Excel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR