Valeur d'une cellule Excel dans textbox d'un Userform
bonsoir tout le monde. Je sèche sur un truc et je voudrais me pister vers une solution svp :)
j'ai je cellule excel de valeur 150,000 par exemple (le résultat de la formule dans cette cellue).
dans un USF j'ai un textbox1 et en exécutant mon code je voudrais que ce textbox1 prenne la valeur de la cellule c'est-à-dire 150,000.
j'ai fait ça via ce code : Textbox1=.cells(Derligne,9).Value
mais ceci me renvoie 0 dans textbox1 !!
pour vérifier si je suis sur la bonne ligne, un MsgBox m'affiche bien la Derligne et la colonne est bien là 9.
avez vous une idée sur ce problème svp ?
Bonjour,
Pour vous en assurer, il faudrait faire :
msgbox "Valeur : " & .cells(Derligne,9).Value
msgbox "Feuille : " & .parent.name
msgbox "Ligne : " & DerligneCdlt,
Bonjour à tous
tu peux aussi utiliser Textbox1=.cells(Derligne,9).Text
Mais attention, ça te retourne ce que tu vois dans la cellule.
C'est à dire avec le format choisi, et si la colonne n'est pas assez large la valeur arrondie ou tronquée, ou #### selon les cas.
Maintenant est-ce que derligne est à la bonne valeur et non 1 ligne plus bas ???
Parce si tu y vois 150,000, que ce soit en texte ou en numérique .Value te le retourne
Met un break et contrôle sa valeur
eric
Bonjour Eric et 3GB,
Merci pour vos propositions mais ... ça renvoie toujours un zéro !
C'est ambigu je ne pourrai pas le joindre !
Bonjour
Qu'est-ce qui est ambigu
Quand on veut joindre un fichier test, on peut... la preuve
Oui je devrai préparer ce fichier test OK A plus ... sauf si je trouve une solution là je la posterai directement
Oui Oui je viens de le faire maintenant !
donc ça passe à travers :
Me.TextBox1.Value = .Cells(DerLigne, 9).Value
Merci Bruno :)
Ce que j'ai réussi à faire aussi c'est de mettre les formules des cellules dans le code meme.
En effet, ce que j'avais c'est : formules dans cellule de la première ligne, puis Filldown ... ce qui n'a pas abouti
En plaçant les formules des Cells directement dans le code je n'i plus besoin de faire le filldown et donc ça marche.
Merci pour vous tous
Me
Re,
Du coup ou était votre erreur sur ce que vous a dit précédemment @eriiic ou @3GB
A+
Avec le code que j'avais qui celui la :
' AJOUT DANS ACHAT :
With Sheets("ACHAT")
derligA = .Range("F" & Rows.Count).End(xlUp).Row
If TextBox2 <> 0 Then
For i = 3 To derligA
If .Cells(i, 1) = TextBox1 And .Cells(i, 2) = ComboBox1 And .Cells(i, 11) = ComboBox2 Then compteur = True
'PAS DE REF EXISTANTE AVEC MEME FACTURE ET MEME PROJET OU PROJET NUL
Next i
If compteur = False Then
.Cells(derligA + 1, 1) = TextBox1
.Cells(derligA + 1, 2) = ComboBox1
.Cells(derligA + 1, 3) = TextBox2
.Cells(derligA + 1, 4) = TextBox3
.Cells(derligA + 1, 5) = TextBox4
.Cells(derligA + 1, 7) = TextBox5
.Cells(derligA + 1, 11) = ComboBox2
.Range("F2:F" & derligA + 1).FillDown
.Range("J2:J" & derligA + 1).FillDown
.Range("H2:I" & derligA + 1).FillDown
TextBox16 = Format(TextBox2 * TextBox3 * (1 - Format(TextBox4, "0.00")) * (1 + Format(TextBox5, "0.00")), "0.000")
TextBox17 = .Cells(derligA + 1, 9).Value
End If
End If
End WithLe fait d'avoir fait FillDown jusqu'à la dernière cellule de la ligne, ça m'affichait dans le textbox de l'USF.
EN modifiant, en plaçant les formules qui étaient dans les cellules et en me passant du FillDown, j'ai directement des valeurs dans la cellule voulue :
' AJOUT DANS ACHAT :
With Sheets("ACHAT")
derligA = .Range("F" & Rows.Count).End(xlUp).Row
If TextBox2 <> 0 Then
For i = 3 To derligA
If .Cells(i, 1) = TextBox1 And .Cells(i, 2) = ComboBox1 And .Cells(i, 11) = ComboBox2 Then compteur = True
'PAS DE REF EXISTANTE AVEC MEME FACTURE ET MEME PROJET OU PROJET NUL
Next i
If compteur = False Then
.Cells(derligA + 1, 1) = TextBox1
.Cells(derligA + 1, 2) = ComboBox1
.Cells(derligA + 1, 3) = TextBox2
.Cells(derligA + 1, 4) = TextBox3
.Cells(derligA + 1, 5) = TextBox4
.Cells(derligA + 1, 6) = TextBox3 * (1 - Format(TextBox4, "0.00"))
.Cells(derligA + 1, 7) = TextBox5
.Cells(derligA + 1, 8) = TextBox3 * (1 - Format(TextBox4, "0.00")) * (1 + Format(TextBox5, "0.00"))
.Cells(derligA + 1, 9) = TextBox2 * TextBox3 * (1 - Format(TextBox4, "0.00")) * (1 + Format(TextBox5, "0.00"))
.Cells(derligA + 1, 10) = (.Cells(derligA + 1, 8) - .Cells(derligA + 1, 6)) * .Cells(derligA + 1, 3)
.Cells(derligA + 1, 11) = ComboBox2
TextBox16 = Format(TextBox2 * TextBox3 * (1 - Format(TextBox4, "0.00")) * (1 + Format(TextBox5, "0.00")), "0.000")
TextBox17 = .Cells(derligA + 1, 9).Value
End If
End If
End WithEst ce que j'ai répondu à la question ? :)