Insertion d'un élément avec une TextBox [Résolu]

Signaler
Messages postés
38
Date d'inscription
mardi 17 mars 2009
Statut
Membre
Dernière intervention
17 juin 2011
-
Messages postés
38
Date d'inscription
mardi 17 mars 2009
Statut
Membre
Dernière intervention
17 juin 2011
-
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

Messages postés
6826
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
6 juillet 2020
109
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
Messages postés
6826
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
6 juillet 2020
109
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
Messages postés
6826
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
6 juillet 2020
109
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
Messages postés
6826
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
6 juillet 2020
109
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
Messages postés
38
Date d'inscription
mardi 17 mars 2009
Statut
Membre
Dernière intervention
17 juin 2011

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.
Messages postés
38
Date d'inscription
mardi 17 mars 2009
Statut
Membre
Dernière intervention
17 juin 2011

Merci Le Pivert.
Je vais me débrouiller avec ça. Merci beaucoup
Messages postés
38
Date d'inscription
mardi 17 mars 2009
Statut
Membre
Dernière intervention
17 juin 2011

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
Messages postés
6826
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
6 juillet 2020
109
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.
Messages postés
38
Date d'inscription
mardi 17 mars 2009
Statut
Membre
Dernière intervention
17 juin 2011

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
Messages postés
38
Date d'inscription
mardi 17 mars 2009
Statut
Membre
Dernière intervention
17 juin 2011

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
Messages postés
38
Date d'inscription
mardi 17 mars 2009
Statut
Membre
Dernière intervention
17 juin 2011

Merci beaucoup. Je comprends mieux maintenant. Je viens de refaire un test et cela marche