Insertion d'un élément avec une TextBox

Résolu
toushusss Messages postés 38 Date d'inscription mardi 17 mars 2009 Statut Membre Dernière intervention 17 juin 2011 - 9 mai 2011 à 13:54
toushusss Messages postés 38 Date d'inscription mardi 17 mars 2009 Statut Membre Dernière intervention 17 juin 2011 - 13 mai 2011 à 09:29
Bonjour,et merci par avance pour l'aide apportée.
Je souhaiterais savoir comment faire pour inserer dans mon tableau excel des éléments taper dans une textBox les uns à la suite des autres automatiquement. Exemple je valide une valeur dans ma textBox et cela me l'affiche en A1 puis je valide une autre valeur et l'affiche en A2 ...
Merdi par avance

11 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
9 mai 2011 à 16:13
Si j'ai tout compris la dernière est ton total. Tu veux mettre la texte au dessus.

Dim ligne As String
Private Sub CommandButton1_Click()
 dernierligne
  Range("A" & ligne).Select 'derniere ligne
   Selection.Insert Shift:=xlDown 'inserer ligne au dessus
 ActiveCell.Offset(0, 0).Select 'selectionner ligne
  ActiveCell.FormulaR1C1 = TextBox1.Text 'saisie du texte
End Sub
'Chercher la dernière ligne de la colonne A
Function LastRow()
'feuille active, colonne A
  LastRow = Cells(Cells.Rows.Count, "A").End(xlUp).Row
End Function
Sub dernierligne()
ligne = LastRow
End Sub


Le Pivert
3
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
10 mai 2011 à 15:22
Petit conseil: Nomme tes textBox pour que l'on sache à quoi ils sont destinés.
Voici le code:
Dim ligne As String
Private Sub CommandButton1_Click()
dernierligne
  Range("B" & ligne).Select 'derniere ligne
   Selection.Insert Shift:=xlDown 'inserer ligne au dessus
 ActiveCell.Offset(0, 1).Select 'selectionner ligne (0 =ligne, 1=colonne)
  ActiveCell.FormulaR1C1 = TextBox1.Text 'saisie du texte
   ActiveCell.Offset(0, 1).Select  'selectionner ligne
  ActiveCell.FormulaR1C1 = TextBox2.Text 'saisie du texte
   ActiveCell.Offset(0, 1).Select 'selectionner ligne
  ActiveCell.FormulaR1C1 = TextBox3.Text 'saisie du texte
   ActiveCell.Offset(0, 1).Select 'selectionner ligne
  ActiveCell.FormulaR1C1 = TextBox4.Text 'saisie du texte
End Sub
'Chercher la dernière ligne de la colonne B
Function LastRow()
'feuille active, colonne B
  LastRow = Cells(Cells.Rows.Count, "B").End(xlUp).Row
  End Function
Sub dernierligne()
ligne = LastRow
End Sub

Je t'ai mis des commentaires pour les ligne et colonne. A toi de les régler

Le Pivert
3
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
10 mai 2011 à 16:50
Voilà le code:

Dim ligne As String
Private Sub CommandButton1_Click()
dernierligne
  Range("B" & ligne).Select 'derniere ligne
   Selection.Insert Shift:=xlDown 'inserer ligne au dessus
 ActiveCell.Offset(0, -1).Select 'selectionner ligne (0 =ligne, 1=colonne)-1 colonne à gauche de B = A
  ActiveCell.FormulaR1C1 = TextBox1.Text 'saisie du texte
   ActiveCell.Offset(0, 2).Select  'selectionner même ligne  2 colonne à droite de A = C
  ActiveCell.FormulaR1C1 = TextBox2.Text 'saisie du texte
   ActiveCell.Offset(0, 1).Select 'selectionner mêmeligne 1 colonne à droite de C = D
  ActiveCell.FormulaR1C1 = TextBox3.Text 'saisie du texte
   ActiveCell.Offset(0, 3).Select 'selectionner mêmeligne 3 colonne à droite de D = G
  ActiveCell.FormulaR1C1 = TextBox4.Text 'saisie du texte
End Sub
'Chercher la dernière ligne de la colonne B
Function LastRow()
'feuille active, colonne B
  LastRow = Cells(Cells.Rows.Count, "B").End(xlUp).Row
  End Function
Sub dernierligne()
ligne = LastRow
End Sub


Pour les explications des ligne et colonne, je crois t'avoir donné un site. Regarde-le tu comprendras mieux. Pour ta 2ème question, je n'ai pas compris. Ce que tu peux faire, c'est enregistrer une macro et faire ta manip. Tu auras ton code tout fait
Le Pivert
3
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
9 mai 2011 à 14:23
Bonjour,
Essaie ceci:

Dim ligne As String
Private Sub CommandButton1_Click()
 dernierligne
  Range("A" & ligne).Select
 ActiveCell.Offset(1, 0).Select
  ActiveCell.FormulaR1C1 = TextBox1.Text
End Sub
'Chercher la dernière ligne de la colonne A
Function LastRow()
'feuille active, colonne A
  LastRow = Cells(Cells.Rows.Count, "A").End(xlUp).Row
End Function
Sub dernierligne()
ligne = LastRow
End Sub



@+ Le Pivert
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
toushusss Messages postés 38 Date d'inscription mardi 17 mars 2009 Statut Membre Dernière intervention 17 juin 2011
9 mai 2011 à 15:28
Merci ça fonctionne en "partie" pour ce que je veux faire. Excuse moi de te demander juste une autre chose : pour la saisie c'est ok ça passe d'une ligne à l'autre, mon probleme est que c'est un tableau et que ma dernière ligne est un total des précédentes. Avec ton programme ( qui je précise est super) arrivé à la case total les données se remplice aprés et non entre comme pris en sandwich entre l'intitulé de la colonne et la cellule total derniére cellule du tableau.
0
toushusss Messages postés 38 Date d'inscription mardi 17 mars 2009 Statut Membre Dernière intervention 17 juin 2011
9 mai 2011 à 16:29
Merci Le Pivert.
Je vais me débrouiller avec ça. Merci beaucoup
0
toushusss Messages postés 38 Date d'inscription mardi 17 mars 2009 Statut Membre Dernière intervention 17 juin 2011
10 mai 2011 à 09:49
Bonjour, j'ai testé le code que m'a donné le pivert. Comme j'ai plusieur renseignements à afficher j'ai modifier le code comme suit :
(Le probleme est que mes données s'affichent au dessus de ma ligne de titre.
J'aurais aimé que les données s'affichent entre la ligne de titre et la derniere ligne qui effectue les totaux.
Je peux joindre un fichier en exemple pour mieux comprendre mon probleme mais ne sais pas comment inserer un fichier sur la page de forum
Merci pour votre aide)

Dim ligne As String
Private Sub CommandButton1_Click()
dernierligne
Range("A" & ligne).Select 'derniere ligne
Selection.Insert Shift:=xlDown 'inserer ligne au dessus
ActiveCell.Offset(0, 0).Select 'selectionner ligne
ActiveCell.FormulaR1C1 = TextBox1.Text 'saisie du texte

dernierligne
Range("B" & ligne).Select 'derniere ligne
Selection.Insert Shift:=xlDown 'inserer ligne au dessus
ActiveCell.Offset(0, 0).Select 'selectionner ligne
ActiveCell.FormulaR1C1 = "" 'saisie du texte

dernierligne
Range("C" & ligne).Select 'derniere ligne
Selection.Insert Shift:=xlDown 'inserer ligne au dessus
ActiveCell.Offset(0, 0).Select 'selectionner ligne
ActiveCell.FormulaR1C1 = TextBox2.Text 'saisie du texte

dernierligne
Range("D" & ligne).Select 'derniere ligne
Selection.Insert Shift:=xlDown 'inserer ligne au dessus
ActiveCell.Offset(0, 0).Select 'selectionner ligne
ActiveCell.FormulaR1C1 = TextBox3.Text 'saisie du texte

dernierligne
Range("E" & ligne).Select 'derniere ligne
Selection.Insert Shift:=xlDown 'inserer ligne au dessus
ActiveCell.Offset(0, 0).Select 'selectionner ligne
ActiveCell.FormulaR1C1 = "" 'saisie du texte

dernierligne
Range("F" & ligne).Select 'derniere ligne
Selection.Insert Shift:=xlDown 'inserer ligne au dessus
ActiveCell.Offset(0, 0).Select 'selectionner ligne
ActiveCell.FormulaR1C1 = "" 'saisie du texte

dernierligne
Range("G" & ligne).Select 'derniere ligne
Selection.Insert Shift:=xlDown 'inserer ligne au dessus
ActiveCell.Offset(0, 0).Select 'selectionner ligne
ActiveCell.FormulaR1C1 = TextBox4.Text 'saisie du texte

dernierligne
Range("H" & ligne).Select 'derniere ligne
Selection.Insert Shift:=xlDown 'inserer ligne au dessus
ActiveCell.Offset(0, 0).Select 'selectionner ligne
ActiveCell.FormulaR1C1 = "" 'saisie du texte

End Sub
'Chercher la dernière ligne de la colonne A
Function LastRow()
'feuille active, colonne A
LastRow = Cells(Cells.Rows.Count, "A").End(xlUp).Row
LastRow = Cells(Cells.Rows.Count, "B").End(xlUp).Row
LastRow = Cells(Cells.Rows.Count, "C").End(xlUp).Row
LastRow = Cells(Cells.Rows.Count, "D").End(xlUp).Row
LastRow = Cells(Cells.Rows.Count, "E").End(xlUp).Row
LastRow = Cells(Cells.Rows.Count, "F").End(xlUp).Row
LastRow = Cells(Cells.Rows.Count, "G").End(xlUp).Row
LastRow = Cells(Cells.Rows.Count, "H").End(xlUp).Row
End Function
Sub dernierligne()
ligne = LastRow
End Sub
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
10 mai 2011 à 12:11
A premièrement vu ta Function LastRow() ne va te retourner que la dernière:
LastRow = Cells(Cells.Rows.Count, "H").End(xlUp).Row

Il faudrait plus de détails!
Il existe des sites pour déposer des données. Ensuite tu n'auras plus qu'a donner le lien.
0
toushusss Messages postés 38 Date d'inscription mardi 17 mars 2009 Statut Membre Dernière intervention 17 juin 2011
10 mai 2011 à 13:47
http://cid-68cdbe08cca2e9a2.office.live.com/browse.aspx/Classeur%20excel
Voici le lien de mon fichier, je pense que tu comprendra mieux en le voyant
Avnat tout merci pour ton aide Le Pivert
0
toushusss Messages postés 38 Date d'inscription mardi 17 mars 2009 Statut Membre Dernière intervention 17 juin 2011
10 mai 2011 à 16:09
Merci Le Pivert
Apparemment ça marche. Par contre j'ai réglé les rang au pifs, toujours pas compris comment ça marche ????
Je te remet une adresse pour voir le fichier avec les modifs, j'ai repéré les textbox cette fois ci avec un texte au dessus pour voir à quoi elles correspondent.
Tu veras les coordonnées que j'ai mis envoie les données au bon endroit mais je ne pige pas la logique, si tu pouvais m'éclairer.

Pourrais tu medire aussi comment entrer une formule dans la colonne E pour effectuer à chaque fois le chiffre de D / par le chiffre de C Merci énormement pour ton aide trés précieuse.

http://cid-68cdbe08cca2e9a2.office.live.com/browse.aspx/Doc%20Excel?nl=1&uc=1
0
toushusss Messages postés 38 Date d'inscription mardi 17 mars 2009 Statut Membre Dernière intervention 17 juin 2011
13 mai 2011 à 09:29
Merci beaucoup. Je comprends mieux maintenant. Je viens de refaire un test et cela marche
0
Rejoignez-nous