Remplir une cellule grace à 3 textbox : ligne, colone, valeur

Résolu/Fermé
Ipalgo Messages postés 51 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 11 février 2017 - Modifié par Ipalgo le 26/11/2013 à 00:49
Ipalgo Messages postés 51 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 11 février 2017 - 26 nov. 2013 à 22:19
Bonjour la communauté,

Situation :
1feuille excel, 1 userform, 3textbox, 1commandbutton et... une grande base de donnée... (exact, l'erreur à ne pas commettre ;) )

Quel serait le code VBA pour, au clic du commandbutton1 placé dans l'UserForm, activer la cellule à l'intersection ligne="TextBox1"/colonne="TextBox2" et la remplir avec la valeur de la "Textbox3" ?

A vous lire,
iPA

A voir également:

6 réponses

Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
26 nov. 2013 à 13:19
Voilà qui doit satisfaire la demande ...

Private Sub CommandButton1_Click()
Dim DernCol As Long
Dim i As Long

If TextBox1.Text = "" Or TextBox2.Text = "" Or TextBox3.Text = "" Then
    Msgbox "Vous devez renseigner les 3 champs", vbExclamation, "Saisie Obligatoire"
    Exit Sub
End If

DernCol = Cells(1, Cells.Columns.Count).End(xlToLeft).Column
For i = 1 To DernCol
    If Cells(1, i) = CLng(TextBox1.Text) Then
        Cells(CLng(TextBox2.Text), i) = TextBox3.Text
        TextBox2.Text = ""
        TextBox3.Text = ""
        Exit Sub
    End If
Next i


End Sub

1
Ipalgo Messages postés 51 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 11 février 2017
Modifié par Ipalgo le 26/11/2013 à 19:34
Polux, j'ai rajouté un "+ 1" dans le code qui cible la cellule ; comme ça l'écriture se fait à la bonne ligne.

Cells(CLng(TextBox2.Text) + 1, i) = TextBox3.Text
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
26 nov. 2013 à 19:40
Je n'ai pas eu besoin d'ajouter + 1 dans mes tests pour écrire sur la ligne désirée !!!

Lorsque j'ai mis la ligne 10 pour l'année 2014 dans le UF, j'avais bien en ligne 10 dans la colonne nommée "2014" la donnée du textbox3 ... et non pas à la ligne 9 comme il semblerait que ça se produit chez toi !!!
0
Ipalgo Messages postés 51 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 11 février 2017
26 nov. 2013 à 20:27
Ok, mais ça veut dire que si tu mets la ligne 1 pour l'année 2014 dans l'UF, tu écris en ligne 1 du tableur.. et tu effaces l'intitulé 2014 de la colonne non ?

Chez moi la ligne 1 du tableur est réservée aux intitulés des colonnes, donc mon 1er n° client correspond à la 2ème ligne du tableur, d'où le +1.
0
Ipalgo Messages postés 51 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 11 février 2017
Modifié par Ipalgo le 26/11/2013 à 20:35
Saurais-tu comment émettre un petit beep après avoir cliqué sur "Save & Add new one" ?
...Bon appétit
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
26 nov. 2013 à 20:56
Chez moi la ligne 1 du tableur est réservée aux intitulés des colonnes, donc mon 1er n° client correspond à la 2ème ligne du tableur

Chez toi !!! ça tu ne l'as pas précisé, parce que chez moi, celui qui utilise ton UF, comme je l'ai fait, sait quelle ligne doit être renseignée et non quel client ... de ce fait, je ne mettrais jamais la ligne 1 dans le textbox2.

Je ne sais pas si la commande Beep fonctionne en VBA.
0
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
26 nov. 2013 à 09:22
bonjour,

sub commandbutton1_click

cells(textbox1.value,textbox2.value) = textbox3.value

end sub
0
Ipalgo Messages postés 51 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 11 février 2017
Modifié par Ipalgo le 26/11/2013 à 11:58
Merci Mélanie,

j'ai essayé la solution ce matin ; un message d'erreur apparait : "erreur d'exécution '1004' : Erreur définie par l'application ou par l'objet "

En lisant le vba on voit que les valeur des textbox sont bien réutilisés mais elles sont entre guillemets "". Peut être que la syntaxe Cells(1,2) ne convient pas ?

En passant le curseur au dessus de la ligne de débogage j'ai l'impression que ça donne :
cells("2015","2") = "6"
0
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
26 nov. 2013 à 12:03
Ok je m'en doutais un peu, modifie comme suis :

sub commandbutton1_click

cells(textbox1.value +1-1,textbox2.value+1-1) = textbox3.value+1-1

end sub
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
26 nov. 2013 à 12:09
Parce que le retour du contenu d'un TextBox est de type string ...

Faire:

Cells(CLng(TextBox1.Text), CLng(TextBox2.Text)) = TextBox3.Text
0
Ipalgo Messages postés 51 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 11 février 2017
26 nov. 2013 à 12:51
J'ai essayé vos deux modifications, aucun message d'erreur n'apparait ce qui est plutôt bon signe, mais la case que je pense désigner ne se rempli pas. Je vous envoie un fichier exemple.
0
Ipalgo Messages postés 51 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 11 février 2017
26 nov. 2013 à 12:49
Je place un fichier exemple à l'adresse suivante pour être plus précis :
https://www.cjoint.com/c/CKAmVTCfQte
0

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

Posez votre question
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
26 nov. 2013 à 13:02
En fait, ça fonctionne ... mais le problème exposé ne correspond pas à ce qu'il y a dans le fichier !!!

l'intersection ligne="TextBox1"/colonne="TextBox2"

Ca c'est que Mélanie et moi avons fait ...

Mais en fait, il faut renseigner l'année et non la colonne ...
0
Ipalgo Messages postés 51 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 11 février 2017
26 nov. 2013 à 13:30
Merci Polux31,

La solution est parfaite. :)

Résolu !
0