cs_Loic34000
Messages postés27Date d'inscriptionmardi 11 mars 2008StatutMembreDernière intervention 6 juin 2008
-
24 avril 2008 à 22:27
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 2018
-
28 avril 2008 à 22:38
Bonjour à tous,
J'ai créé un programme permettant de communiquer avec mon port parallèle puis de stocker les infos dans une feuille excel, mon problème est que j'ai beaucoup d'info qui arrive et je remplis les 32000 lignes maxi d'excel par feuille rapidement alors je voudrais continuer à stocker mes infos sur une seconde feuille qui se créerait automatiquement puis ainsi de suite lorsque la précédante est pleine, seulement je ne vois pas comment faire si quelqu'un aurait une idée...
Kristof_Koder
Messages postés918Date d'inscriptionvendredi 3 août 2007StatutMembreDernière intervention27 octobre 200810 24 avril 2008 à 22:33
C'est pas 65536 le nb maxi de ligne dans excel ?
Enfin de toute façon, quel que soit la limite en nb de ligne, pour passer à une feuille suivante, dans ton code, tu dois bien gérer un N° de ligne courante dans une variable, non ? Testes donc la valeur de cette variable, et lorsqu'elle arrive à dépasser la limite, tu crées ta nouvelle feuille puis tu remet la variable "N° de ligne courante" à 1
cs_Loic34000
Messages postés27Date d'inscriptionmardi 11 mars 2008StatutMembreDernière intervention 6 juin 2008 25 avril 2008 à 10:55
Bonjour ,
Effectivement je me suis trompé y a bien 65536 lignes maxi.
Voici mon morceaux de code qui gére l'écriture dans le fichier excel :
Set oExcel = CreateObject("Excel.Application")
oExcel.Visible = True 'Affiche l'application excel.
Workbooks.Open App.Path & "\MonClasseur.xls" 'Ouvre le fichier Excel "MonClasseur"
Set oWk = ActiveWorkbook
LigneVide = oWk.Sheets(1).Cells(Rows.Count, "A").End(xlUp).Row + 1 'recherche une case vide dans la colonne A
oWk.Sheets(1).Range("A" & LigneVide) = Text2 'Ecrit la date et l'heure du transfert dans la case vide trouvée
'Sauve le classeur.
oExcel.DisplayAlerts = False 'Pour éviter des questions si classeur déjà existant.
oWk.SaveAs App.Path & "\MonClasseur.xls"
oWk.Close False 'Ferme le classeur.
oExcel.Quit 'quitte excel.
Set oWk = Nothing
Set oExcel = Nothing 'libération mémoire.
Mon problème est de traduire en code le fait que la LigneVide = 65536 puis de faire ouvrir un nouveau fichier du genre MonClasseur+1 mais comment faire
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201822 25 avril 2008 à 23:58
Tu dois utiliser une variable pour tes noms de feuilles plutôt qu'un chiffre
<strike>Sheets(1)</strike>
Sheets(VariableCompteur)
VariableCompteur = VariableCompteur + 1
....
ou Sheets("Feuil" & Variable) si tu veux utiliser son nom par défaut plutôt que son Index
ou Sheets("Feuil" & Sheets.Count) pour te servir du nombre de feuilles existantes
If LigneVide > 65534 Then 'la feuille est pleine et il faut créer une nouvelle feuille
Avant de créer une nouvelle feuille, il te faut vérifier si elle existe déjà ou non. Tout dépend comment tu procèdes...
MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Loic34000
Messages postés27Date d'inscriptionmardi 11 mars 2008StatutMembreDernière intervention 6 juin 2008 28 avril 2008 à 17:53
Bonjour MPI,
En fait j'aimerais que mon prog crée une feuille sans quelle existe déjà lorsque la première feuille est complète. Mon problème est que je ne connais pas la fonction à utiliser pour créer une nouvelle feuille dans mon prog pour le moment je ne fais qu'ouvrir un fichier existant.
Est-ce-que quelqu'un connaitrait la solution ?
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201822 28 avril 2008 à 22:38
Loic34000,
n'oublie pas qu'il y a l'enregistreur de macro qui est utile quand on ne sait trop comment s'y prendre... et ensuite l'aide en ligne sur les mots-clés générés qu'on ne comprend pas bien...
MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI