Réitérer remplissage données dans un tableau via texbox

Bonjour,

Je suis toute nouvelle sur le forum et je sollicite votre aide concernant un projet perso que j'ai sur un fichier Excel qui utilise des fonctions VBA, des macros et des fonctions matricielles.

Je bute sur beaucoup de choses pour ce projet et c'est pour cela que je vais procéder par étapes et j'actualiserai au fur et à mesure de l'avancement.

Aujourd'hui, mon premier problème est un problème VBA qui est le suivant :

- Remplissage d'un tableau avec des données provenant de texbox et réitérer l'opération à l'infini.

Mon code :

Private Sub CommandButton1_Click()

With ThisWorkbook.Worksheets("Administration DL")

.Cells(9, 2).Value = TextBox1.Text

.Cells(10, 2).Value = TextBox1.Text

.Cells(11, 2).Value = TextBox1.Text

.Cells(12, 2).Value = TextBox1.Text

.Cells(13, 2).Value = TextBox1.Text

.Cells(9, 3).Value = TextBox2.Text

.Cells(10, 3).Value = TextBox3.Text

.Cells(11, 3).Value = TextBox4.Text

.Cells(12, 3).Value = TextBox5.Text

.Cells(13, 3).Value = TextBox6.Text

End With

TextBox1.Text = ""

TextBox2.Text = ""

TextBox3.Text = ""

TextBox4.Text = ""

TextBox5.Text = ""

TextBox6.Text = ""

End Sub

Pour l'instant, le remplissage est manuel et ne fonctionne que pour les 5 premières lignes (logique, me direz vous).

J'aimerai "juste" faire une boucle pour remplir à l'infini ce tableau et qu'à chaque lancement il n'écrase pas les anciennes données et reprenne d'une case vide. (peut être fonction recherche de case vide..)

Note : Ce tableau débute en B9 / C9 (ignorer les cases vides avant donc) et la texbox1 se reproduit systématiquement 5 fois à la suite.

Cela fait deux semaines que je cherche, sans succès.

Merci à vous pour votre aide.

15test1.xlsm (58.95 Ko)

bonjour

mon conseil :

commencer par faire un classeur qui fonctionne avec une saisie dans les cellules directement

crée la structure des Tables, les relations RECHERCHEV, les TCD, les graphiques, les formules (les plus simples possibles ! Excel regorge de solutions de calcul SANS FORMULES, à apprendre d'urgence.

ainsi tu pourras commencer à travailler grâce à ce classeur

ensuite, dans 6 mois ou 1 an tu te lanceras dans les formulaires (il faut apprendre VBA d'abord, avec des tutos structurés)

la priorité est de faire un classeur qui fonctionne. Le formulaire sera plus tard la cerise sur le gâteau.

bon travail

Bonjour et merci pour la réponse.

Mon classeur fonctionne correctement manuellement.

Justement, je connais beaucoup de fonctions d'Excel et c'est ma seule fonction en VBA sur ce classeur.

Pour mon projet, j'ai juste besoin d'une USERFORM au départ afin de rentrer les données pour remplir un premier tableau.

Tout part ensuite de là avec des fonctions "classiques".

Je commence cette discussion par le VBA car c'est par priorité

Salut Pikipeanut,

Salut jmd,

tu as fort à faire, mon pauvre jmd! Je te vois t'évertuer sur tous les fronts face à cette armée de mécréants!

Et on n'est que mardi!

Pikipeanut, si tu veux une aide efficace (n'écoute pas, jmd! ), pense à joindre un fichier à chaque demande!

A+

re

salut curulis,

sais-tu que depuis 3 jours je ne descends plus VBA en flammes dès l'abord ?

à cause de ou grâce à dhany

Salut jmd,

oui, j'ai remarqué! Le discours s'est adouci vis-à-vis de VBA mais je parlais du combat de fond que tu mènes en faveur des fonctions natives d'Excel!

D'ailleurs, sur ce point, et si je peux me permettre, pourquoi ne tentes-tu pas d'apporter des explications plus pratiques à l'occasion d'une demande?

Telle opération = Menu X, telle option...

En 2 ou 3 lignes bien choisies, tu ferais peut-être plus de convaincus qu'en lâchant les idées générales... qu'il faut encore saisir!

Après tout, nous sommes bien sur... Excel-Pratique, non ?! Sois sûr que je serais ton premier élève!

A+

re

j'ai tout mis, ou presque, dans ma signature

Ben, oui, c'est bien ce que je disais...

A+

Salut Pikipeanut,

Salut jmd,

tu as fort à faire, mon pauvre jmd! Je te vois t'évertuer sur tous les fronts face à cette armée de mécréants!

Et on n'est que mardi!

Pikipeanut, si tu veux une aide efficace (n'écoute pas, jmd! ), pense à joindre un fichier à chaque demande!

A+

C'est fait, j'ai édité le post

Bonjour,

réitérer l'opération à l'infini

C'est loin l'infini, surtout vers la fin.

Il faudrait expliquer un peu plus comment tu imagines le fonctionnement.

Plusieurs options sont possibles. Saisies uniques répétées ou à l'inverse enchainées avec un bouton pour sortir, etc

eric

Bonjour,

réitérer l'opération à l'infini

C'est loin l'infini, surtout vers la fin.

Il faudrait expliquer un peu plus comment tu imagines le fonctionnement.

Plusieurs options sont possibles. Saisies uniques répétées ou à l'inverse enchainées avec un bouton pour sortir, etc

eric

Oui, en effet, c'était pour appuyer le "réitérer"

Saisies uniques répétées.

On rentre le pronostiqueur, les 5 celebrites, on valide, on recommence... à l'infini ! :p

Donc en gros ce qui te manque c'est la 1ère ligne dispo ?

En se basant sur la colonne A :

lig = Cells(Rows.Count, "A").End(xlUp).Row + 1

Ensuite tu peux faire une boucle For i= 0 to 4 et utiliser lig+i pour chaque ligne

eric

Donc en gros ce qui te manque c'est la 1ère ligne dispo ?

En se basant sur la colonne A :

lig = Cells(Rows.Count, "A").End(xlUp).Row + 1

eric

Je n'ai pas bien compris "1ère ligne dispo"

Pourrais-tu m'expliquer ce que fait cette ligne car j'intègre ça où par rapport à mon programme initial?

Le must serai de me le réécrire en adéquation avec mon application si possible

Ah mais je ne vais pas faire te devoirs Ca ne serait pas te rendre service.

Il faut que tu remplisses à la suite. Ce code te dit quelle est la première ligne libre à utiliser.

Cells(lig,1) ="xxx" te la remplit

Salut PikiPeanut,

Salut Eriiic,

quand j'étais ado, j'étais très heureux et chanceux que mon ami me fasse tous mes devoirs de math ce qui équilibrait les bilans avec les interros désastreuses... ce qui ne m'a pas empêché de m'en sortir!

C'est peut-être pour ça que je donne les solutions sans me poser de questions!

Cela dit, dans ce cas précis, il m'a fallu bricoler pour calculer cette foutue première ligne libre d'un tableau Excel.

Si un crack pouvait m'expliquer la vraie méthode de pro!

Private Sub cmdValider_Click()
'
For x = 1 To 6      'contrôle si toutes les TexBox sont complétées sinon renvoie à la TextBox vide
    If Me.Controls("TextBox" & x).Text = "" Then Me.Controls("TextBox" & x).SetFocus: Exit Sub
Next
With Worksheets("Administration DL")
    iRow = IIf(.Range("C9") = "", 9, .Range("C8").End(xlDown).Row + 1)  'calcul de la première ligne libre
    .Cells(iRow, 2) = Me.TextBox1.Text
    Me.TextBox1.Text = ""
    For x = iRow To iRow + 4
        .Cells(x, 3) = Me.Controls("TextBox" & x - (iRow - 2)).Text
        Me.Controls("TextBox" & x - (iRow - 2)).Text = ""
    Next
End With
'
End Sub

A+

5pikipeanut.xlsm (57.14 Ko)

Oui mais toi ça ne te pose pas problème.

Tu es à la retraite, tu peux l'accompagner le jour des contrôles sur table

eric

Pas encore! 4 ans à tirer! Pas si vieux, gamin!

Rechercher des sujets similaires à "reiterer remplissage donnees tableau via texbox"