Aller à ligne suivante (vierge)

Résolu
LUSTRUCRU Messages postés 91 Date d'inscription mardi 8 avril 2003 Statut Membre Dernière intervention 15 mars 2013 - 27 juin 2007 à 22:58
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 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 

Pouvez vous m'aider  
Merci d'avance

5 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 22
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

MPi
3
LUSTRUCRU Messages postés 91 Date d'inscription mardi 8 avril 2003 Statut Membre Dernière intervention 15 mars 2013
27 juin 2007 à 23:41
Merci  MPI


la boucle comme ça ?


for  i=1

i = 1
range("A" & i) = val (textbox1)
range("B" & i) = val (textbox2)
range("C" & i) = val(textbox3)

next
i = i + 1


merci de vos réponses
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 22
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...

MPi
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
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  ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 22
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)

MPi
0
Rejoignez-nous