LUSTRUCRU
Messages postés91Date d'inscriptionmardi 8 avril 2003StatutMembreDernière intervention15 mars 2013
-
27 juin 2007 à 22:58
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 2018
-
28 juin 2007 à 12:08
Bonjour,
A partir d'un code VB j'écrit des données provenant de text box dans un fichier Excel dèjà crée
Exemple !
range("A1")=val (textbox1)
range("B1")=val (textbox2)
range ("C1")=val(textbox3)
cela pour un enregistrement,
je souhaite donc aller à la ligne vierge du document excel considéré (dans ce cas précis :
A2 pour écrire la nouvelle valeur de textbox1, B2 pour textbox2, C2 pour Textbox3)
et ainsi de suite, j'ai max 47 enregistrement à copier vers excel
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201822 27 juin 2007 à 23:17
Si tu sais d'avance que tu commenceras sur la ligne 1, utilise une variable débutant à 1 et incrémente-la pour chaque ligne à écrire.
i = 1
range("A" & i) = val (textbox1)
range("B" & i) = val (textbox2)
range("C" & i) = val(textbox3)
i = i + 1
le tout dans une boucle bien sûr...
Si tu ne connais pas l'endroit où commencer à inscrire tes données parce qu'il y en a déjà, tu peux utiliser la même variable (ou une autre) pour trouver la première ligne vide. Il existe des tas de méthodes différentes et aussi bonnes les unes que les autres
LastLine = ObjetFeuille.Cells(Rows.Count, "A").End(xlUp).Row + 1
Tu mets le nom de la variable-objet qui pointe vers la feuille (ObjetFeuille) et tu changes la lettre A pour la colonne dont tu veux vérifier le nombre de lignes
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201822 28 juin 2007 à 00:22
Non...
En fait ça dépend combien de textbox tu as.
Si tu as 3 textbox que tu remplis et que tu envoies dans Excel puis que tu les remplis à nouveau et que tu envoies à nouveau dans Excel, la boucle n'est pas nécessaire. Un simple bouton suffira et la variable "i" devra s'incrémenter sur Click du bouton
Si tu as plusieurs séries de textbox et que tu veux inscrire tous ces texbox en une fois (3 par ligne), tu devras boucler tous les textbox par groupe de 3 et les envoyer dans Excel... Là, ça peut devenir complexe selon les noms que tu auras donné aux textbox
Cette partie demeure nébuleuse (?)
C'est le 47 enregistrements qui est énigmatique...
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 28 juin 2007 à 02:58
Salut LUSTRUCRU
Salut MPi,
la clé de l' énigme est dans :
cela pour un enregistrement,
je souhaite donc aller à la ligne vierge du document excel considéré (dans ce cas précis :
A2 pour écrire la nouvelle valeur de textbox1, B2 pour textbox2, C2 pour Textbox3)
et ainsi de suite...
Celà suppose alors qu' il n' y a que trois textox qui sont mise à jour
après le passage à un nouvel enregistrement.
Question alors :S' il n' y a que trois textbox, d' ou tirent-ils leurs nouvelles valeurs ?:
Autrement, difficile à mon avis quand on sait qu' on ne peut pas faire une collection
de textbox.Mais peut on le faire avec un tabeau, MPi ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201822 28 juin 2007 à 12:08
Alors,
soit tu incrémentes la variable i à chaque Click du bouton, et ce i doit être conservé en mémoire
soit tu refais le calcul de dernière ligne à chaque Click
LastLine = ObjetFeuille .Cells(Rows.Count, "A").End(xlUp).Row + 1
range("A" & LastLine) = val (textbox1)
range("B" & LastLine) = val (textbox2)
range("C" & LastLine) = val(textbox3)