Toutes les feuilles dans une seule ?

  • Initiateur de la discussion Seb__
  • Date de début
S

Seb__

Guest
Bonjour,

Voici mon pb :
J'ai un fichier excel qui comporte des annonces automobiles avec une feuille par marque.
Toutes les feuilles comportent les mêmes colonnes.
Je dois traiter ce fichie en PhP, mais je voudrais transformer le fichier pour qu'il ne contienne qu'une seule feuille regroupant les unes sous les autres, toutes les feuilles du document initial.

Est ce possible ?

Merci d'avance du coup de pouce.
@+
Seb__
 

MichelXld

XLDnaute Barbatruc
bonjour Seb

tu ne donnes pas beaucoup d'infos sur le format des feuilles dans ton classeur , l'exemple ci dessous est donc tres generique et demandera sans doute quelques adaptations . j'espere que cela pourra tout de meme t'aider



Code:
Sub compilationFeuilles()
Dim Wb As Workbook
Dim Ws As Worksheet
Dim i As Byte
Dim Ligne As Integer

Set Wb = Workbooks.Add(1) 'creation d'un nouveau classeur

On Error Resume Next
For i = 1 To ThisWorkbook.Sheets.Count 'boucler sur les feuilles du classeur
Set Ws = ThisWorkbook.Sheets(i)

Ws.UsedRange.Cells.Copy
Ligne = _
Wb.Sheets('Feuil1').Cells.Find('*', Wb.Sheets('Feuil1').Range('A1'), _
SearchDirection:=xlPrevious).Row + 1

If Ligne = 0 Then Ligne = 1
Wb.Sheets('Feuil1').Cells(Ligne, 1).Select
Wb.Sheets('Feuil1').Paste
Next i

End Sub



bonne soiree
MichelXld
 
S

Seb__

Guest
Salut Michel,

Tout d'abord, merci pour ta réponse.
Après une petite partie de ma aprème et en surfant, j'ai réussi à faire une macro qui marche.
Le problème c'est que je voudrais en faire une macro complémentaire pour pouvoir l'éxécuter depuis n'importe quel fichier.
J'ai donc fait un xla.
Je la trouve bien dans le menu macros complémentaires mais je ne sais pas comment l'éxécuter !
Le top serait que je puisse l'éxécuter depuis un bouton.
Je pense que le problème vient de ma macro ...
Si vous pouviez regarder mon code (c'est mon premier soyez indulgents !) :)

Code:
'Fonction exportant tous les véhicules dans un nouveau fichier
Sub ExportVehicules()
' On déclare les fichiers
Dim fichier_source As Workbook
Dim fichier_final As Workbook
Set fichier_source = ThisWorkbook
Set fichier_final = Workbooks.Add(xlWBATWorksheet)
Dim ligne%
ligne = 1

' les feuilles du doc
Dim Sht As Worksheet
Dim Sht2 As Worksheet
Set aSh = ActiveSheet
Set Sht2 = fichier_final.Sheets(1)

' Pour chaque feuille du doc initial, chaque MARQUE
For Each Sht In fichier_source.Worksheets
  ' Pour chaque ligne, chaque VEHICULE ' MsgBox Sht.Name & ' comporte ' & Sht.UsedRange.Rows.Count
  For j = 1 To Sht.UsedRange.Rows.Count
    ' Si c une bonne ligne, Prix ok
    If Sht.Cells(j, 6).Value <> '' And Sht.Cells(j, 6).Value <> 'Prix proposé' And Sht.Cells(j, 6).Value <> '0' Then
      ' Pour chaque colonne (les 9 en fait)
      For i = 1 To 9
        Sht2.Cells(ligne, i).Value = Sht.Cells(j, i).Value
      Next i
      ' On saute une ligne dans le fichier final
      ligne = ligne + 1
    End If
  Next j
Next Sht
' Fin fonction
End Sub

Bye
Seb
 

MichelXld

XLDnaute Barbatruc
rebonsoir Seb

pour une premiere fois , ta macro est deja tres bien

si tu souhaites acceder a ta macro xla deuis un bouton dans ta barre de menu , tu peux par exemple regarder le lien ci dessous

Lien supprimé

il s'agit d'une demo de Didier MyDearFriend , tres bien détaillée , dont tu pourras t'inspirer pour ton projet


bonne soiree
MichelXld
 
S

Seb__

Guest
Re,

Merci Michel pour cette prompte réponse, mais j'ai 2 petites questions.
J'ai cliqué 2 fois sur le fichier dc la macro est installée 2 fois (comment en supprimer une ?)
Et je n'arrive pas à voir le code de la macro .... :(

Merci de votre aide
 

MichelXld

XLDnaute Barbatruc
rebonsoir Seb


si tu ferme Excel , puis le réouvres , les boutons devraient avoir disparu


normalement , il y a notice jointe à la demo de Didier ...

Comme pour tout fichier '.xla', il y a 2 façons d'en disposer :

1) La première est d'ouvrir le fichier dans Excel de façon 'classique' comme n'importe
quel autre classeur lorque vous en avez besoin.

2) La deuxième (recommandée) consiste à le faire charger automatiquement à chaque
démarrage d'Excel pour l'avoir ainsi tout le temps à disposition et donc de le
référencer en tant que macro complémentaire :

- DAns Excel, faire Outils/Macros Complémentaires/Bouton Parcourir,
- Sélectionnez le fichier 'mDF_Calendrier.xla', puis OK.
- Dans la liste des Macros Complémentaires maintenant disponibles,
cochez 'mDF - Calendrier' et validez.

Nota : si vous sauvegardez le fichier '.xla' dans le répertoire des Macros
Complémentaires par défaut, il n'y a plus besoin de faire 'Parcourir',
le fichier apparaitra automatiquement dans la liste.



Le code de cette macro complémentaire est protégé par un MOT DE PASSE uniquement pour ne
pas 'encombrer' la fenêtre des projets VBA avec une arborescence développée du projet.
Aussi, pour ceux qui souhaitent avoir accès au code, le mot de passe à utiliser est
'mydearfriend'.



bonne soiree
MichelXld
 
S

Seb__

Guest
Re Michel,

Alors, les boutons ne disparaissent pas au redémarrage ...
En fait, le fichier zip ne contenait que le xla.

Il ne me manquait pas le mot de passe, mais je ne connais pas la manipulation pour avoir accès au code de la macro ...
Dans Visual Basic Editor ???

Bye
Seb
 
S

Seb__

Guest
Pfff, je suis naze !
J'ai bien trouvé le projet calendrier (mais chaque fois que je clique, j'ajoute un bouton !)
Le mot de passe 'mydearfriend' ne fonctionne pas :silly:
Je désespère !

Bye
Seb
 

jeanpierre

Nous a quitté
Repose en paix
Bonsoir Michel, Seb, le Forum,

Seb, tu dois être sous XP, et l'excellente macro de Didier mDF se multiplie, sous cette version de Win. à chaque ouverture. Fais une recherche sur l'ancien Forum sur le nom de cette macro.
Tu devrais trouver un fil de discussion contenant une version 2 qui corrige ce problème ainsi qu'un fichier qui remettra tout en ordre. Si tu n'y arrives pas, il pourra t'être expliqué une petite manip. pour que tout rentre dans l'ordre. Il s'agit, en fait, de supprimer un petit fichier Excel (Merci à TI).
Mais pour XP, je crois me souvenir que c'est dans Documents and settings, mais par précaution ne fais rien tant que tu n'as pas utilisé le 'correctif' et au besoin cela te sera expliqué.

Bonne soirée en attendant,

Jean-Pierre.
 

myDearFriend!

XLDnaute Barbatruc
Bonsoir tout le monde,

Tout d'abord merci à MichelXLD et JeanPierre d'avoir bien voulu renseigner Seb au sujet du mDF_Calendrier et désolé de ne pas être intervenu plus tôt, ce fil de discussion m'avait échappé...

Effectivement Seb, la première version de cette macro complémentaire connaissait un problème sous certaines configurations, problème normalement corrigé à partir de la version 2. Tu trouveras dans les 2 liens ci-dessous les explications et fichiers nécessaires pour corriger ce bug :

Lien supprimé
Lien supprimé

Pour info, jusqu'à la version 2.2, le mot de passe d'accès au projet VBA est 'mydearfriend'.


Cela dit, je tiens à t'informer qu'une nouvelle version 3 est maintenant disponible en section téléchargement d'Excel-Downloads.Tu la trouveras en page d'accueil ou sous ce lien : Lien supprimé

Tu trouveras ICI les nouveautés de cette version ainsi qu'une page expliquant l'Installation / Désinstallation des macros complémentaires.

Cordialement.
 

MichelXld

XLDnaute Barbatruc
bonjour Seb , Jean-Pierre et Didier

merci d'etre venu à mon secours , car je ne comprenais plus le probleme de Seb.

la macro complémentaire de Didier est installée depuis longtemps sur mon poste (Excel2002) et je n'ai jamais constaté ce probleme


encore merci
bonne journée
MichelXld
 
S

Seb__

Guest
Merci à tous pour vos réponses.
J'ai enfin réussi à associer ma macro complémentaire à un bouton etc ...
Par contre, les 4 boutons calendrier ne sont pas partis même à l'aide de l'utilitaire cité ...
Ma configuration : win 2000 + excel 2000

Je continue et vous tiens au courant

Bye
Seb
 

Discussions similaires

Statistiques des forums

Discussions
312 487
Messages
2 088 834
Membres
103 971
dernier inscrit
abdazee