Changer de feuille excel lorsqu'elle est pleine

cs_Loic34000 Messages postés 27 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 6 juin 2008 - 24 avril 2008 à 22:27
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 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...

Merci.

7 réponses

Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
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
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
25 avril 2008 à 07:40
t'aurais un bout de code, Loic34000 ?
0
cs_Loic34000 Messages postés 27 Date d'inscription mardi 11 mars 2008 Statut Membre Derniè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

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

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

Posez votre question
cs_Loic34000 Messages postés 27 Date d'inscription mardi 11 mars 2008 Statut Membre Derniè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 ?

Merci d'avance.
0
Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
28 avril 2008 à 18:38
Un truc du genre :
Sheets.Add
... sans doute ?
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 21
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
0