Résolu Comment copier ou fusionner 98 Feuilles excel d'un même fichier

  • Auteur de la discussion eve2411
  • Date de début

eve2411

Nouveau membre
Bonsoir,
j'ai converti un PDF en XLS (appel d'offres) mais malheureusement mon fichier s'est converti en 98 Feuilles ! je voudrais donc faire une copie de ces 98 Feuilles dans une seule feuille. En gros je voudrais que mon tableau tienne sur une seule feuille. Comment faire, merci de votre aide je dois rendre l'appel d'offre trés rapidement. Merci de votre réponse
 

abswindows7

Grand Maître
Je te dirait copier coller serait surement la plus logique des facons, par contre elle serai tres longue ...
 

zeb

Modérateur
Salut,

@abswindows7, tu peux te dispenser de réponse de ce genre dans la catégorie Programmation

@eve2411 change le titre de ton message, s'il te plaît. Je regarde ton problème.
 

eve2411

Nouveau membre


Oui, merci !!!! c est pour éviter celà que j'ai posé la question :(
 

eve2411

Nouveau membre


OK c'est fait - merci par avance de ton aide, je suis sur le problème depuis 48H ca me rend folle, je trouve pas.
 

zorinhosantiago

Habitué
Meilleure réponse
Bonjour,
Une petite macro :
Code:
Option Explicit
Sub test2()
Dim ws As Worksheet
For Each ws In Worksheets
If ws.Name <> "recap" Then
Application.ScreenUpdating = False
ws.Activate
Range("A1:" & [a1].SpecialCells(xlCellTypeLastCell).Address).Copy
Sheets("NOM DE LA FEUILLE OU VOUS SOUHAITEZ TOUT RECUPERER").Activate
Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
Application.CutCopyMode = False
End If
Next ws
End Sub
Je viens de la tester et ça fonctionne. :hello:
 

eve2411

Nouveau membre
bonjur et merci, mais je vais paraitre plus qu'idiote, je ne maitrise pas trés bien les macros !!!! sauf les toutes simples ;) pourriez juste m'indiquer ou et comment l'insérer, merci d'avance.

:hello:


 

zorinhosantiago

Habitué
Je suis (très) loin d'être un pro également et ne sachant pas si vous avez office 2007, office 2003 ou autre, je vais tenter de faire au plus clair.

Je pars sur la base d'office 2007 qui est la version que j'ai, en espagnol, donc désolé par avance si la traduction n'est pas l'exacte de ce que vous voyez.
Sous l'onglet "vue" vous avez tout au bout une icône "macros". Il faut commencer par cliquez sur "créer" qui ne vous permet que de mettre un nom à votre macro puis ensuite cliques sur "voir les macros", sélectionnez celle que vous venez d'ajouter (et qui est donc vierge) et cliquez sur "modifier".
Un nouvel écran apparaît alors, copier-coller ce code dans l'écran, pensez à mettre le nom de la feuille ou vous souhaitez voir tout fusionner puis repasser à votre classeur excel, cliquez sur "macro" sélectionnez votre macro et cliquez sur "exécuter" et le miracle technologique s'accomplit, merci au forum ou je l'ai trouvé :) .

Je suis toutefois surpris que votre convertisseur de PDF à XLS ne vous ai pas demandé si vous souhaitiez tout importer sur la même feuille.
 

eve2411

Nouveau membre
GENIAL ca marche, tu es formidable :bounce: merci beaucoup, je n'ai plus qu'à modifier ma mise en page et j'ai mes 2900 Lignes sur une même feuille. Je te fais un énorme bisou :pt1cable: :pt1cable: MERCIIIIIII - je vais essayer de trouver des tutos sur le VBA, mais y'a du boulot.
Merci encore passe une bonne soirée.
Eve.
 

zorinhosantiago

Habitué
Euh, eh bien, y'a pas de quoi ! :)

Ceci dit, celui qui est à remercier c'est celui qui à inventé ce genre de truc, j'espère qu'il est bien payé !!! :pt1cable:
 

zorinhosantiago

Habitué

n
n :p Merci !
 

zeb

Modérateur
Salut,

Je n'ai pas eu le temps de m'en occuper que zorinhosantiago proposait une bonne réponse. Tant mieux.

Cependant, zorinhosantiago, merci de respecter le règlement. Tu dois présenter tout code proposé en le mettant entre les balises
Code:
[[i]/[/i]code]. Il te reste donc à modifier ton message.

[center][img]http://site.voila.fr/zulu-echo-bravo/img/newbie_oups_je_corrige.png[/img][/center]
 

zeb

Modérateur
Oh, je viens de regarder ton code, zorinhosantiago !
Tu es un hérétique de la programmation !
De quel droit te permets-tu de remplir le presse-papier de l'utilisateur à son insu ?
De plus parce que tu utilises les objets en cours de sélection, tu ralentis énormément ton programme au point que tu es obligé d'utiliser ScreenUpdating.

Je te propose de voir TON code, légèrement revu à la lumière des éléments précédents :
Code:
' // Ca, c'est très bien !!! :)
Option Explicit

' // Le code zorinhosantiago, revu pour ne
' // pas utiliser le presse papier.
Sub test2()
    Dim ws As Worksheet
    
    For Each ws In Worksheets
        If ws.Name <> "recap" Then
            ws.Range(ws.Range("A1"), _
                     ws.Range("A1").SpecialCells(xlCellTypeLastCell)).Copy _
                Destination:=Worksheets("recap").Range("A65536").End(xlUp).Offset(1, 0)
        End If
    Next
End Sub

Voici ce que je propose, et qui n'est pas mieux que le précédent :
Code:
Option explicit
' // Code équivalent, plein de variables inutiles pour bien comprendre
Sub test_3()
    Dim ws               As Worksheet
    Dim ws_recap         As Worksheet
    Dim cell_source_1er  As Range
    Dim cell_source_der  As Range
    Dim cell_recap_cible As Range
    
    Set ws_recap = Worksheets("recap")

    For Each ws In Worksheets
        If ws <> ws_recap Then
            Set cell_source_1er = ws.Range("A1")
            Set cell_source_der = cell_source_1er.SpecialCells(xlCellTypeLastCell)
            Set cell_recap_cible = ws_recap.Range("A65536").End(xlUp).Offset(1, 0)
            
            ws.Range(cell_source_1er, cell_source_der).Copy Destination:=cell_recap_cible
        End If
    Next
End Sub
 

zorinhosantiago

Habitué

Désolé !

Ceci dit, un message privé aurait été du plus bel effet, surtout que si je n'étais pas venu refaire un tour sur le post, je ne l'aurai jamais su.

Bonne journée :hello:
 

zeb

Modérateur
Ah mais non cher ami,

Je propose à tous une alternative, que j'estime meilleure (c'est subjectif et on peut en discuter), et ce n'est que pour la rhétorique que je m'adresse à toi, aidé en cela il est vrai par le fait que je me base sur une critique (objective ;) ) de ton code.

Par ailleurs, si tu as la fibre pour filer de temps en temps un coup de patte, tu reviendras souvent et tu ne manqueras pas de visiter en premier les sujets signalés d'un
Vous devez être connecté pour voir les images.
. Ce sont ceux auxquels tu as participé.

A te lire :hello:
 

spitulo

Habitué
Bonjour,

Désolé de remonter le sujet,

Mais cette question m'avait beaucoup intéressé, et les code VBA proposé fonctionnent bien

Cependant, mon problème personnel complique la chose: j'aurais aimé savoir s'il serait possible d'avoir lemême code, pour prendre tous les tableaux des feuilles, excepté la première ligne de chacune des feuilles. Puisqu'elle comporte les titre des colonnes.

Merci d'avance!
 

zeb

Modérateur
Bonjour Stipulo,

Ne sois pas désolé. Ici, si les topics ne sont pas fermés automatiquement au bout d'un certain temps, c'est pour qu'on puisse les remonter.

Bon, par contre, ici, nous discutons entre développeurs. Et les codes proposés sont non pas à utiliser tels quels mais à étudier, à comprendre et éventuellement à adapter.

Etudie le dernier code proposé. On y utilise une cellule de référence (A1) qu'il te suffit d'adapter pour que le reste du code fonctionne comme tu le voudrais.
 

spitulo

Habitué
Ok, je te remercie de ta réponse zeb.
J'ai trouvé ma réponse sur un autre forum.

Et effectivement je ne sais absolument pas programmer en VBA donc tant que je n'aurais aps pris de cours je m'abstiendrais de poster ici ^^

Merci quand même, bye.
 

zeb

Modérateur
Mais les novices sont les bienvenus.
Et l'effort que je te proposais est à la portée d'un grand débutant. (D'autant que je t'ai précisé quoi regarder !)
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 135
Messages
6 718 109
Membres
1 586 397
Dernier membre
Chachabidou
Partager cette page
Haut