Ecrire jusqu'a la ligne 200 puis continuer le traitement sur

Bonjour à tous,

Je suis débutante en VBA Excel.

Je travaille actuellement sur une macro qui va chercher des infos dans un fichier

.XML et les mets en forme dans excel.

Le resultat final comporte plusieurs centaines de lignes.

Je souhaiterais donc que la macro écrive les 200 premieres lignes sur la page

active puis continue le traitement des lignes restantes dans une nouvelle page.

Malheureusement, pour le moment la macro me crée bien une autre feuille mais

écrit directement dessus.

La feuille d'origine elle, reste vide.

Il me manque un bout de code pour dire à la macro, si tu dépasses 200 lignes

écrit dans cette page jusqu'a la ligne 200 puis crée la nouvelle feuille et fini

le traitement sur celle ci.

Pour cela, j'ai récupéré la condition ci dessous mais je ne parviens pas à dire

ce qu'il manque ...

If nb_insta > 200 Then

???

else

ActiveWorkbook.Sheets.Add

end if

Milles mercis à vous pour votre précieuse aide.

Bonne journée

Béatrice

Bonjour

dorko45 a écrit :

pour le moment la macro me crée bien une autre feuille mais

écrit directement dessus.

C'est pas ce que tu voulais ?

Si plus de 200 lignes création de la page et continue à écrire sur la nouvelle page

dorko45 a écrit :

La feuille d'origine elle, reste vide.

C'est quoi cette feuille d'origine ?

Le fait de joindre la macro (le minimum) ou les fichiers concernés (le must) facilitera l'émergence d'une solution

Bonjour,

Merci beaucoup pour vos réponses.

Oui, ce que je désire, c'est lorsque j'atteins 200 lignes, la macro me crée une nouvelle page et continue le traitement du fichier sur l'autre page.

Je vous joins la macro ainsi que les 2 fichiers XML associés.

Il faut choisir le fichier "poste_operateur.xml" lorsque la macro le demande. Ensuite elle va aller prendre les autres infos dans le fichier "poste_operateurInstances.xml"

Il faut donc placer ces fichiers au même endroit.

Actuellement la macro écrit tout sur la même feuille.

Si je rajoute le bout de code spécifié dans mon premier message, elle me crée une page 2 mais n'écrit rien en page 1.

Mille mercis pour votre aide précieuse.

Bonne fin de journée

Cordialement

Béatrice

Bonjour

Si j'ai bien suivi

A bien vérifier

Rajoutes la partie de code en couleur

'
' Début du code
'
' Nouvelle Instance
        If Mid(ligne_lue, 2, 25) = "InstanceDescription alias" Then
            refcel = refcel + 1
If refcel > 200 Then
              Sheets.Add after:=Sheets(Sheets.Count)
              ActiveSheet.Name = "Page " & Format(Sheets.Count, "000")
              Sheets(1).Rows(1).Copy Rows(1)
              refcel = 2
            End If
'
' Suite du code
'

Mais il va y avoir des soucis pour le tri, la mise ne place des filtres et ...... ?

Bonjour,

Merci pour votre aide.

J'ai tenté d'intégrer cette formule à ma macro, mais ça me fait toujours pareil

Je ne vois pas ce qui plante, il me dit Déclaration déjà existante et me montre Dim Refcel As long ...

J'ai tenté avec nb_insta aussi mais ce n'est pas mieux

j'ai épluché votre réponse, je l'ai un peu "mélangé" avec mon code, mais rien a faire ma macro est trop compliqué . Je la récupère d'un collegue qui est parti et je galere car personne ne connait Excel à mon bureau du coup pfff c'est pas évident.

Merci encore pour votre aide

Cordialement

Béatrice

Bonjour

Voir ce fichier que j'avais commencé à étudier

Re Bonjour,

Je ne sais pas comment vous remercier

C'est SUPER ce que vous avez fait ! La macro fonctionne très bien.

Il me reste juste à faire la mise en page au niveau des filtres.

Le résultat final est là et je suis super heureuse.

Un million de fois mercis pour votre aide très précieuse.

Vous êtes super !

Excellente journée à vous

Béatrice

Rechercher des sujets similaires à "ecrire ligne 200 puis continuer traitement"