Résolu Exporter données combobox vers Excel

  • Auteur de la discussion BEBER1212
  • Date de début

BEBER1212

Expert
Bonjour à tous,

Me revoila déjà avec un nouveau souci. J'ai dans un form plusieurs combobox et textbox, et un bouton "valider" qui appelle SaveDataToExcel. Quand je valide, les résultats des combobox et textbox doivent se mettre dans un fichier Excel.

J'ai un problème sur la première ligne de copie (ligne 8) quand je valide : Run-time error 1004 : Application defined or object defined error

Voila mon code :
[cpp]Private Sub SaveDataToExcel()
Dim m_Ligne As Long
Dim ws_liste As Object
Set ws_liste = WB.Worksheets("Liste")
Const xlDown = -4121
m_Ligne = ws_liste.Cells(1, 1).End(xlDown).Row + 1

ws_liste.Cells(m_Ligne, 1) = CmbNom.Text
ws_liste.Cells(m_Ligne, 2) = TxtPrénom.Text
ws_liste.Cells(m_Ligne, 3) = TxtAdresse.Text
ws_liste.Cells(m_Ligne, 4) = TxtTéléphone.Text
ws_liste.Cells(m_Ligne, 5) = TxtPortable.Text
ws_liste.Cells(m_Ligne, 6) = TxtEmail.Text
ws_liste.Cells(m_Ligne, 7) = Calendrier.Text
ws_liste.Cells(m_Ligne, 8) = CmbFaire_part.Text
' ...

WB.Save
End Sub[/cpp]

Je ne comprends pas pourquoi ça plante. Et vous ???

Merci.
 

zeb

Modérateur
Salut,

La ligne qui pose problème :
Code:
ws_liste.Cells(m_Ligne, 1) = CmbNom.Text
Et bien prenons chaque variable et vérifions :
Code:
MsgBox "nom de la feuille : " & ws_liste.Name
MsgBox "Ligne : " & m_Ligne
MsgBox "Adresse de la cellule : " & ws_liste.Cells(m_Ligne, 1).Address
MsgBox "Valeur de la combobox : " & CmbNom.Text
Alors, ça plante où ?
EDIT: Pour l'adresse de la cellule, j'ai ajouté Address que j'avais oublié :pfff:

Par principe, précise la propriété que tu veux assigner. Une cellule contient une formule, une valeur, un type d'affichage, une bordure, une couleur de fond, etc. Dans le cas qui nous concerne, il s'agit de la valeur, je pense :
Code:
ws_liste.Cells(m_Ligne, 1).Value = CmbNom.Text
 

BEBER1212

Expert
Bonjour,

Ça plante sur l'adresse de la cellule. J'ai le même message d'erreur que dans mon post précédent.

Pour la ligne, j'ai : 1048577. Ça correspond à quoi ?

J'ai ajouté le .value sur toutes mes lignes (toutes les combo et textbox), j'ai toujours le problème. J'essaierai d'y penser maintenant...

Merci.
 

zeb

Modérateur
Relis mon message. Je m'étais planté....

Ça donne quoi :
Code:
MsgBox "Ligne : " & m_Ligne & vbCrLf & _
       "Adresse de la cellule : " & ws_liste.Cells(m_Ligne, 1).Address
 

BEBER1212

Expert
Meilleure réponse
C'est bon, j'ai trouvé tout seul :sol: .

Mon bouton "valider" me définit m_Ligne comme ça :
[cpp]If ws_liste.Cells(2, 1).Value = "" Then
m_Ligne = 2
Else
m_Ligne = ws_liste.Cells(1, 1).End(xlDown).Row + 1[/cpp]
puis lance SaveDataToExcel, qui me re-définissait m_Ligne comme ça :
[cpp]m_Ligne = ws_liste.Cells(1, 1).End(xlDown).Row + 1[/cpp]

Donc dans le cas où la cellule (2,1) était vide, m_Ligne était à la fois égale à 2, et à 1...donc problème.
J'ai donc viré la définition de m_Ligne dans SaveDataToExcel.


Mais comme je n'avais pas mis le code de mon bouton "valider", il n'y a que moi qui pouvait trouver...Ouf !!!

Merci encore.

P.S : on peut pas choisir sa réponse comme meilleure réponse ???
 

zeb

Modérateur
>>> P.S : on peut pas choisir sa réponse comme meilleure réponse ???
Si. Mais il faut demander à un modo
[:zeb:6]
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 136
Messages
6 718 117
Membres
1 586 397
Dernier membre
Chachabidou
Partager cette page
Haut