écrire une valeure d'un userform dans un onglet excel

Résolu
vlago -  
 vlago -
Bonjour,

je souhaite renseigner une valeure issue d'un userform à la première cellule vide dans un autre onglet excel. J'ai systématiquement l'erreur 1004 ("erreur définie par l'application ou par l'objet")

Voici mon code

Private Sub OK_Click()

Sheets("Data").Range("A2").End(xlDown).Offset(1, 0) = TextBox1
Sheets("feuil1").Range("B2") = TextBox1

End Sub


Merci par avance.
A voir également:

4 réponses

melanie1324 Messages postés 1504 Date d'inscription   Statut Membre Dernière intervention   155
 
Bonjour,

Voici des questions qui peuvent être débiles mais qui expliquerait ton problème :

1°)As-tu une feuille qui s'appelle Data?
2°) As-tu une feuille qui s'appelle Feuil1
3°) Est-ce que l'une des deux feuilles est protégée?

Si tu as répondu OUI aux questions 1 et 2 et NON à la 3ème, il vaut mieux que tu mettes ton classeur sur cjoint.com et mettre le lien ici.

Sinon :
- Modifies ton code ou nommes une feuille Data ou feuil1
- Rajoutes dans ton code une déprotection de la feuille en question, écris ta valeur et remets ta protection.
0
vlago
 
Merci melanie1324.

Malheureusement j'ai bien des feuilles qui s'appelle Data et Feuil1 et elles ne sont pas protégées.
Voici donc mon fichier: http://cjoint.com/?3LEogf0vzaH

Merci pour ton aide.
0
melanie1324 Messages postés 1504 Date d'inscription   Statut Membre Dernière intervention   155
 
Bonjour,

J'ai trouvé ton souci :

si ton tableau est vide, le code provoque une erreur.
Par contre s'il y a une donnée renseignée en A3, ton code fonctionne.

Pour le contourner :


Private [/contents/446-fichier-sub Sub] OK_Click() 

if Sheets("Data").Range("A3")="" then
Sheets("Data").Range("A3") = TextBox1 
else

Sheets("Data").Range("A2").End(xlDown).Offset(1, 0) = TextBox1 
end if

Sheets("feuil1").Range("B2") = TextBox1 

End Sub 
0
vlago
 
C'est genial ça marche!

Merci bcp melanie1324!
0