Aide pour la programmation d'un userform remplissant une ligne Excel

Aide pour la programmation d'un userform remplissant une ligne Excel - VB/VBA/VBS - Programmation

Marsh Posté le 09-03-2009 à 10:19:35    

Bonjour, dans le cadre de mon stage je dois programmer un fichier Excel sur une liste de sous-traitant. Je suis actuellement débutant en VBA.
L’userform créé une ligne d’informations sur un sous traitant. L’userform  se compose de textboxs que l’utilisateur va remplir et ensuite cliquer sur ok pour confirmer.  
Chaque textbox remplit une cellule d’une ligne du tableau de sous traitant
J’ai rajouté une condition sur la cellule dans la colonne A qui est la suivant :
 
« Si la cellule Ai ne contient rien alors effectuer ces actions. »
 
Je propose cette programmation :
 
Sub AjoutSTTEST()           (Macro créé quand l’utilisateur clique sur « ok » pour confirmer)
 
Dim ValeurA As String
For i = 1 To n
ValeurA = ActiveCell.ValueR1Ai
  If ValeurA = "" Then
  ActiveCell.ValueR1Ai = TextBox1.Value
  ActiveCell.ValueR1Bi = TextBox8.Value
  ActiveCell.ValueR1Ci = TextBox3.Value
  ActiveCell.ValueR1Di = TextBox4.Value
  ActiveCell.ValueR1Ei = TextBox5.Value
  ActiveCell.ValueR1Fi = TextBox6.Value
  ActiveCell.ValueR1Gi = TextBox7.Value
  ActiveCell.ValueR1Hi = TextBox9.Value
  ActiveCell.ValueR1Ii = TextBox10.Value
  End If
Next i
   
End Sub
 
Voila, je vous remercie de votre patience!

Reply

Marsh Posté le 09-03-2009 à 10:19:35   

Reply

Marsh Posté le 09-03-2009 à 12:26:50    

For i = 1 To n
  If IsEmpty(Range("Ai" )) Then
  ActiveCell.ValueR1Ai = TextBox1.Value
  ActiveCell.ValueR1Bi = TextBox8.Value
  ActiveCell.ValueR1Ci = TextBox3.Value
  ActiveCell.ValueR1Di = TextBox4.Value
  ActiveCell.ValueR1Ei = TextBox5.Value
  ActiveCell.ValueR1Fi = TextBox6.Value
  ActiveCell.ValueR1Gi = TextBox7.Value
  ActiveCell.ValueR1Hi = TextBox9.Value
  ActiveCell.ValueR1Ii = TextBox10.Value
  End If
Next i
 
End Sub
 
Est ce que cette programmatation est meilleure ?
Je vous remercie de votre patience !

Reply

Marsh Posté le 09-03-2009 à 13:40:27    

Bon, après mes recherches, je suis arrivé à une autre programmation :
Sub Derniereligne()
Dim a as Long
Range("A65536" ).End(xlUp).Offset(1, 0).Select
Activecell.row = a  
Range("Aa" ).Value = TextBox1.Value
  Range("Ba" ).Value = TextBox8.Value
  Range("Ca" ).Value = TextBox3.Value
  Range("Da" ).Value = TextBox4.Value
  Range("Ea" ).Value = TextBox5.Value
  Range("Fa" ).Value = TextBox6.Value
  Range("Ga" ).Value = TextBox7.Value
  Range("Ha" ).Value = TextBox9.Value
  Range("Ia" ).Value = TextBox10.Value
 
 
End Sub
 
 
En fait, ce que je recherche c'est une détection de la première ligne non utlisée dans la colonne A, et l'ajout de cellules dans cette ligne !!
Pouvez vous m'aider ?

Reply

Marsh Posté le 09-03-2009 à 14:02:07    

Voila, j'ai réussi a recupérer le numero de la premiere ligne non utilisée avec ceci :
 
Static a As Long
 
Derniere_ligne = ActiveSheet.Columns.End(xlDown).Row
 
Premiere_ligne = Derniere_ligne + 1
 
Range("Aa" ).Value = TextBox1.Value  
  Range("Ba" ).Value = TextBox8.Value  
  Range("Ca" ).Value = TextBox3.Value  
  Range("Da" ).Value = TextBox4.Value  
  Range("Ea" ).Value = TextBox5.Value  
  Range("Fa" ).Value = TextBox6.Value  
  Range("Ga" ).Value = TextBox7.Value  
  Range("Ha" ).Value = TextBox9.Value  
  Range("Ia" ).Value = TextBox10.Value  
 
Comment j'insere ma valeur de ligne dans la formule range ??

Reply

Marsh Posté le 09-03-2009 à 16:02:35    

Voila, j'ai reussi a prendre la premiere ligne non remplie, mais je n'arrive pas à prendre la valeur d'une variable dans la fonction range !!
 
Pouvez vous m'aider ?

Reply

Sujets relatifs:

Leave a Replay

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