Remplir ligne excel spécifique avec informations textbox

Notorious

XLDnaute Nouveau
Bonjour à tous, par cette belle journée ensoleillée ! :cool:

Je viens vers vous pour une pôtite question, m'voyez.

Alors je vous explique la situation. :)

Sur mon fichier Excel, j'ai des boutons qui permettent d'ouvrir des Userform. Ces Userforms sont comme des "formulaires" avec différentes listbox, combobox et textbox.

Je désire remplir une ligne Excel PRECISE (et j'insiste sur le précise) avec les informations contenues dans ces texbox etc. lorsque je clique sur mon bouton "validerreponse"

Une information contenue dans l'une de ces textbox correspond à un numéro (de 1 à 65000 et quelques). Ce numéro IDENTIFIE la ligne dans laquelle je veux que les informations soient collées. Il est unique pour chaque ligne.

Aujourd'hui, lorsque je clique sur mon bouton "validerreponse", les informations de mes textbox sont bien retranscrites dans mon tableau MAIS dans la dernière ligne non vide !! Or, j'aimerai que ces informations soient retranscrites dans la ligne correspondant à mon numéro PRÉCIS (de ma textbox numéro).

Si l'un d'entre vous peut éclairer ma lanterne, je lui en serais immensément reconnaissant ! :D

Voici le code (le code, c'est la loi -> CF Pirates des Caraïbes) :

Private Sub ValiderReponse_Click()

Dim p, num As Long

num = Sheets("feuil1").Range("c65536").End(xlUp).Row

'inscription des données récupérées du formulaire validé dans la feuille excel
'sélection de la ligne sur laquelle écrire (la première vide)
'on part du bas de la colonne, on cherche
'la première cellule non vide avec end(xlup), on renvoie son N° avec row et on ajoute 1 pour avoir le numéro de la
'ligne d'en dessous


Sheets("feuil1").Activate

Range("Q" & num).Value = causes.Value 'remplissage de la cellule appropriée
Range("R" & num).Value = action.Value 'remplissage de la cellule appropriée
Range("S" & num).Value = Responsable.Value 'remplissage de la cellule appropriée
Range("T" & num).Value = CDate(TxtDateRéponse.Value) 'le cdate sert à convertir une date au format des paramètres régionaux du pc

Unload Me 'on décharge le formulaire. Du coup au prochain affichage, les contrôles seront remis dans
'leur état initial.


End Sub
 
Dernière édition:

Notorious

XLDnaute Nouveau
Re : Remplir ligne excel spécifique avec informations textbox

Bonjour Pierrot !

Je viens d'essayer et cela me rempli la "dernière ligne non vide + 1 " :( mais la solution tourne peut être autour de ça..

Pour être plus clair, dans une textbox, j'ai un numéro qui va de 1 à 65000. Ce numéro est unique, il n'y a pas plusieurs fois "1", "25" "37896"... Il correspond à la ligne qu'il faut remplir. C'est un numéro d'identification.
Les informations des autres textbox sont clairement rattachées à ce numéro.
En effet, les informations comprises dans les textbox2 et textbox3 (simple exemple) doivent être copiées dans la même ligne du fichier Excel où est située ce numéro d'identification.

Actuellement, ces informations ne se remplissent pas dans la ligne correspondante à ce numéro, mais dans la dernière ligne non vide. Cependant, il est probable que dans mon fichier, les informations correspondant au numéro 3 soient remplies (et donc la ligne 3 remplie), et pas les informations correspondant au numéro 1 (ligne 1). Ce qui fait que lorsque je veux remplir ma ligne 1 avec les informations de mes textbox, cela rempli la dernière ligne non vide, donc la ligne 3 (au lieu de la 1)

Je peux fournir un fichier Excel pour plus de clarté !

Bonne aprem à toi aussi
++
Notorious
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Remplir ligne excel spécifique avec informations textbox

Re,

peut être ceci :
Code:
Range("Q" & TextBox1.Value).Value = .......

sinon peut être qu'un tout petit fichier ne représentant que le problème posé, nous aiderait à t'aider....
 

Notorious

XLDnaute Nouveau
Re : Remplir ligne excel spécifique avec informations textbox

Re- !

Voici le fichier exemple, les informations nécessaires sont dans l'onglet "description du problème".
J'ai essayé d'être le plus clair possible, il est vrai que travaillant dessus en ce moment certaines choses me semble évidentes alors qu'elles ne le sont pas !! J'ai du retirer plusieurs infos/images du fait de la taille restreinte autorisée du fichier :(
Sur ce fichier tu as donc une description du problème et un exemple (onglet FCA interne)..

Je continue de chercher de mon côté, à vrai dire j'ai une réunion avec ma hiérarchie vendredi matin donc il faut que j'ai trouvé une solution ! :/

Merci !
 

Pièces jointes

  • Copie de VBA Notorious.xls
    291 KB · Affichages: 80

Pierrot93

XLDnaute Barbatruc
Re : Remplir ligne excel spécifique avec informations textbox

Re,

pour te faire avancer, pour déterminer le numéro de la ligne de la première cellule vide de la colonne R de la feuille active :
Code:
Dim x As Long
x = Range("R2", Range("R65536").End(xlUp)).Find("", Range("R2"), xlValues, , 1, 1, 0).Row

bonne journée
@+
 

Notorious

XLDnaute Nouveau
Re : Remplir ligne excel spécifique avec informations textbox

Encore moi ! J'ai re-réfléchi à ta proposition d'hier

Code:
Range("Q" & TextBox1.Value).Value = .......

et en bidouillant je pense avoir trouvé ce que je cherche

sheets("FCA INTERNE").Activate

Range("r" & NumFCA.Value + 2).Value = causes.Value 'copie txtbox "causes" dans la colonne R et ligne appropriée
Range("s" & NumFCA.Value + 2).Value = action.Value 'copie txtbox "action" dans la colonne S et ligne appropriée
Range("t" & NumFCA.Value + 2).Value = Responsable.Value 'copie txtbox "responsable" dans la colonne T et ligne appropriée
Range("u" & NumFCA.Value + 2).Value = CDate(TxtDateRéponse.Value) 'le cdate sert à convertir une date au format des paramètres régionaux du pc

Unload Me 'on décharge le formulaire. Du coup au prochain affichage, les contrôles seront remis dans
'leur état initial.


End Sub

Je ne sais pas vraiment pourquoi il faut ajouter "+2" à la valeur trouvée dans ma Textbox mais cela m'a l'air de fonctionner ! pourrais tu m'éclairer sur la raison du pourquoi du comment ?^^

Enfin maintenant j'ai un problème au niveau de ma variable lignedensite (avec la méthode "pas à pas", cela bugue à la ligne coloriée en rouge) "erreur d'éxécution 91, variable objet ou variable de bloc with non définie"
Pourtant je déclare bien ma variable (colorié en bleu)

Dim feuille As Worksheet
Dim celluledensite As Range
Dim lignedensite As Range

Set feuille = ThisWorkbook.Worksheets("FCA INTERNE")
Set celluledensite = feuille.Range("A3", "A5").Find(VarPubliqueNumFCA)
Set lignedensite = celluledensite.EntireRow

DateinstructionRC.Value = lignedensite.Cells(8)
unitéemettrice.Value = lignedensite.Cells(4)
ResumeRC.Value = lignedensite.Cells(11)


Pour le coup je bute un peu..
 

Pierrot93

XLDnaute Barbatruc
Re : Remplir ligne excel spécifique avec informations textbox

Bonjour,

A voir ce que la méthode "FInd" à renvoyée... je t'incite à consulter l'aide vba à ce propos et particulièrement ce qu'ils indiquent sur les différents arguments de la méthode.... Voir également comment est déclarée initialisée ta variable "DateinstructionRC"....
 

Discussions similaires

Statistiques des forums

Discussions
312 366
Messages
2 087 638
Membres
103 627
dernier inscrit
nabil