De EXCEL vers WORD par VB6

ahub44 Messages postés 4 Date d'inscription dimanche 6 février 2005 Statut Membre Dernière intervention 9 février 2005 - 6 févr. 2005 à 14:53
ahub44 Messages postés 4 Date d'inscription dimanche 6 février 2005 Statut Membre Dernière intervention 9 février 2005 - 9 févr. 2005 à 15:00
Bonjour à tous !





Je viens solliciter votre aide pour résoudre un chtit problème :





Une application VB6 me permet d'ouvrir un fichier Excel. Jusque là no problemo !


Les choses se corsent : je dois copier les cellules du fichier qui contiennent des données (data en tout genre : date, nom, chiffre...) sachant que c'est une feuille dynamique (nbe de ligne variable ; nbe de colonne fixe=4)

Deuxième opération : coller la sélection dans un fichier Word à un emplacement précis.



Je cherche des infos sur ce type de code depuis 2 jours mais je
ne parvient à rien. Alors si quelqu'un pouvait m'aider ce serait que du
bonheur.



Merci d'avance !

6 réponses

zippro4012 Messages postés 216 Date d'inscription mardi 15 juin 2004 Statut Membre Dernière intervention 26 février 2006 1
6 févr. 2005 à 19:26
Dans quel controle tu place les données EXCEL ?
Sinon, pour le nb de ligne variable, il suffit de faire une boucle for, non ?
For i = 0 to NbDeLignes 'Pour chaque ligne
For y = 0 to 3 'Pour chaque colonne
' Tu traite les données
' i -> numéro de ligne a traiter
'y -> numéro de colonne a traiter
Next y
Next i


0
cqui789 Messages postés 261 Date d'inscription jeudi 13 janvier 2005 Statut Membre Dernière intervention 18 mai 2009 3
7 févr. 2005 à 14:00
Si tu n'as pas de ligne ou de colonne vide entre les lignes a copier,
tuselectionne une case qui sera toujours pleine et tu entre :

Selection.CurrentRegion.Select

Excel selectionne automatiquement la zone autour de la selection.

tu n'as plus qu'a faire le copier / coller
0
ahub44 Messages postés 4 Date d'inscription dimanche 6 février 2005 Statut Membre Dernière intervention 9 février 2005
8 févr. 2005 à 11:29
Pour Zippro4012 et cqui789,

Ben une boucle pour, tu dois normalement avoir besoin de la valeur finale non ?(de 0 à x, mais x inconnu !) Mais cela est-il je ne connais pas la ligne (x). En revanche la valeur qui apparait dans la dernière case [x,0] (ligne x et 1ère colonne ) est toujours la même "Fichiers".
La technique serait donc de lui demander de verifier la valeur de chaque case de la 1ère colonne jusqu'à identifier cette valeur chaîne "Fichiers" (attention certaines lignes sont vides). Dans ce cas le choix pourrait s'orienter vers une boucle "repeter". Seulement là où je bloque c'est la traduction de ce que je dit dans VB6. Je connait les algo de bases papier (scolaire) mais dans VB6 c'est le flou !

Les étapes pour moi serait :

-déclarer constantes j (=colonnes : 4)
-décarer variables i (=lignes : entier), Cell (=valeur de la cellule : chaine), N (=n°ligne : entier)

'Il faut déterminer la plage de sélection dans excel
-initialiser i : i=1
-Repeter lire la cellule (i,1)
jusqu'à Cell=Fichier
N=ligne de Cell
Fin répéter
'Il faut copier la sélection
-sélectionner les cellules de [1,1] à [N,j]
-copier la sélection
'Il faut coller dans la sélection dans Word à un emplacement précis
-Ouvrir le fichier word (ca j'y arrive ! )
-Déterminer l'emplacement (là j'ai aucune idée de comment faire)
-Coller la sélection

Voila ben moi je vois les étapes dans cet ordre là, mais y a pas qu'une technique. Là où ca va pas pour moi c'est vraiement de sortir les lignes de commandes dans VB6.
Si vous pouvez m'aider encore une fois ce serait super sympa. Merci pour tout.
0
ahub44 Messages postés 4 Date d'inscription dimanche 6 février 2005 Statut Membre Dernière intervention 9 février 2005
8 févr. 2005 à 11:30
Pour Zippro4012 et cqui789,

Ben une boucle pour, tu dois normalement avoir besoin de la valeur finale non ?(de 0 à x, mais x inconnu !) Mais cela est-il je ne connais pas la ligne (x). En revanche la valeur qui apparait dans la dernière case [x,0] (ligne x et 1ère colonne ) est toujours la même "Fichiers".
La technique serait donc de lui demander de verifier la valeur de chaque case de la 1ère colonne jusqu'à identifier cette valeur chaîne "Fichiers" (attention certaines lignes sont vides). Dans ce cas le choix pourrait s'orienter vers une boucle "repeter". Seulement là où je bloque c'est la traduction de ce que je dit dans VB6. Je connait les algo de bases papier (scolaire) mais dans VB6 c'est le flou !

Les étapes pour moi serait :

-déclarer constantes j (=colonnes : 4)
-décarer variables i (=lignes : entier), Cell (=valeur de la cellule : chaine), N (=n°ligne : entier)

'Il faut déterminer la plage de sélection dans excel
-initialiser i : i=1
-Repeter lire la cellule (i,1)
jusqu'à Cell=Fichier
N=ligne de Cell
Fin répéter
'Il faut copier la sélection
-sélectionner les cellules de [1,1] à [N,j]
-copier la sélection
'Il faut coller dans la sélection dans Word à un emplacement précis
-Ouvrir le fichier word (ca j'y arrive ! )
-Déterminer l'emplacement (là j'ai aucune idée de comment faire)
-Coller la sélection

Voila ben moi je vois les étapes dans cet ordre là, mais y a pas qu'une technique. Là où ca va pas pour moi c'est vraiement de sortir les lignes de commandes dans VB6.
Si vous pouvez m'aider encore une fois ce serait super sympa. Merci pour tout.
0

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

Posez votre question
cqui789 Messages postés 261 Date d'inscription jeudi 13 janvier 2005 Statut Membre Dernière intervention 18 mai 2009 3
8 févr. 2005 à 23:51
ton cas est typique des DoLoop's

une boucle doloop tourne jusqu'a ce que une condition soit vraie (ou fausse, il y a 4 cas de Doloop)

tu doit gere le compteur toi meme.



x=0

Do until Cell(x,0)="Fichier"

... ' s'execute si et tant que Cell(x,0)="Fichier" est faux

... ' donc tant que la fin n'est pas ateinte,

... ' et pas du tout si la premiere ligne contiend Fichier

x=x+1

Loop

x=-1


Do



x=x+1


... ' s'execute tant que Cell(x,0)="Fichier" est faux


... ' donc jusqu'a ce que la fin soit ateinte,


... ' et au moins une fois si la premiere ligne contiend Fichier


Loop until Cell(x,0)="Fichier"



tu peux remplacer until Cell(x,0)="Fichier" par while Cell(x,0)<>"Fichier"



les 2 font la meme chose (while boucle tant que la condition est vraie)



Il existe aussi un WhileWend mais je ne connais pas les details.
0
ahub44 Messages postés 4 Date d'inscription dimanche 6 février 2005 Statut Membre Dernière intervention 9 février 2005
9 févr. 2005 à 15:00
Ok je test ce soir !
0
Rejoignez-nous