é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.

4 réponses

  1. melanie1324 Messages postés 1561 Statut Membre 156
     
    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
  2. 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
  3. melanie1324 Messages postés 1561 Statut Membre 156
     
    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
  4. vlago
     
    C'est genial ça marche!

    Merci bcp melanie1324!
    0