× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > Tous les forums > Forum Bureautique
 comment affecter une macro a un fichier excel ?
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
laucel1
  Posté le 15/03/2013 @ 18:30 
Aller en bas de la page 

Bonjour à vous toutes et tous ,

j'ai une macro sur un fichier excel 2007 qui me sert à trier les onglets par ordre

alphabetique, mais les onglets que je souhaite trier sont dans un autre fichier.

je suis obligé d'ouvrir les 2 fichiers a chaque fois .

j'ai créé un bouton macro dans la barre qui fonctionne tres bien mais seulement

quand le fichier "macro" est ouvert.

j'ai recherché dans ce forum pusieurs solutions mais sans succes.

je vous remercie par avance pour votre aide.

Publicité
MB24
 Posté le 15/03/2013 à 18:43 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour

Regarde là, tu trouveras surement des réponses : http://excel.developpez.com/faq/?page=Classeur

Cordialement

galopin01
 Posté le 15/03/2013 à 19:30 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonsoir,

Cette macro est dans un classeur qui ne contient "que des macros " (Un genre de Perso.xls ?)

A+

laucel1
 Posté le 15/03/2013 à 21:20 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page

galopin01 a écrit :

Bonsoir,

Cette macro est dans un classeur qui ne contient "que des macros " (Un genre de Perso.xls ?)

A+

Bonsoir , oui c'est un fichier que j'ai telechargé il y a quelques temps sur un site dédié à excel

dm-TrierOnglets.xls.

Il comporte quelques onglets et cette macro.

Merci

Anonyme
 Posté le 17/03/2013 à 09:56 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Nouvel astucien
laucel1 a écrit :

Bonsoir , oui c'est un fichier que j'ai telechargé il y a quelques temps sur un site dédié à excel

dm-TrierOnglets.xls.

Il comporte quelques onglets et cette macro.

Merci

laucel1

peux tu nous dire ce qu'il y a(donc le texte) dans cette macro?

Comme cette macro te donne satisfaction,on peut copier "son texte" et affecter autrement cette macro a tous tes fichiers,ainsi qu'un bouton.

laucel1
 Posté le 17/03/2013 à 11:51 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page

Bonjour Reine claude

On m'a deja parlé du copier coller ,mais vu mon niveau je n'y suis pas arrivé.

Si tu peux me reexpliquer

je te remercie

il y deux pages dans la macro ,

la 1ere

Option Explicit

Sub TriOngletsViaGUI()

Load UF1
UF1.Show
End Sub

Sub TriOnglets()
TriLesFeuilles _
TriAscendant:=True, PremièreFeuille:=1, _
DernièreFeuille:=Worksheets.Count, _
SensibleALaCasse:=False, ParChiffres:=False
End Sub

et la 2eme

Sub TriLesFeuilles( _
Optional TriAscendant As Boolean = True, Optional PremièreFeuille% = 1, _
Optional DernièreFeuille% = 0, Optional SensibleALaCasse As Boolean = False, _
Optional ParChiffres As Boolean = False)

Dim i%, j%, NF%
Dim Noms() As String ' Noms des onglets
Dim Calc As Long

If DernièreFeuille% <= 0 Then DernièreFeuille% = Worksheets.Count
NF = 1 + DernièreFeuille - PremièreFeuille
If NF < 2 Then Exit Sub
ReDim Noms(1 To NF)
ReDim Arr(1 To NF)
For i = 1 To NF 'Récupère les noms et NomsdeTri associés
Noms(i) = Worksheets(PremièreFeuille + i - 1).Name
Arr(i) = NomDeTri(Noms(i), SensibleALaCasse, ParChiffres)
Next i
ReDim Idx(1 To NF) ' Liste des indices de 1 à NF
For i = 1 To NF
Idx(i) = i
Next i
QSort 1, NF, TriAscendant 'On trie les indices Idx
Erase Arr ' Plus besoin des NomsdeTri, Idx contient l'ordre
Calc = Application.Calculation ' Facultatif
Application.Calculation = xlCalculationManual 'Comme celle qui précède
Application.ScreenUpdating = False
For i = 1 To NF ' Place les feuilles en fonction du nouveau rang (indiqué par le tableau Idx)
Worksheets(Noms(Idx(i))).Move Worksheets(PremièreFeuille + i - 1)
Next i
Application.Calculation = Calc ' Comme les deux autres avant la boucle
Erase Noms: Erase Idx
End Sub

' Procédure QuickSort traditionnelle.
' Publiée par Jim Rech le 10/20/1998 sur Excel.Programming
' J'ai rajouté :
' 1-la possibilité de trier en ordre descendant.
' 2-l'utilisation du tableau Idx (comme Laurent Longre l'a fait)
' qui permet de permuter le tableau de pointeurs (Idx) au
' lieu de permuter les éléments (noms de tri mis dans Arr) eux-mêmes.
Private Sub QSort(bas1%, haut1%, Ascendant As Boolean)

Dim bas2%, haut2%, temp%, Pivot

bas2 = bas1
haut2 = haut1
Pivot = Arr(Idx((bas1 + haut1) \ 2)) ' Pivot à mi-parcours

While (bas2 <= haut2)
If Ascendant = True Then
While (Arr(Idx(bas2)) < Pivot And bas2 < haut1)
bas2 = bas2 + 1
Wend
While (Arr(Idx(haut2)) > Pivot And haut2 > bas1)
haut2 = haut2 - 1
Wend
Else
While (Arr(Idx(bas2)) > Pivot And bas2 < haut1)
bas2 = bas2 + 1
Wend
While (Arr(Idx(haut2)) < Pivot And haut2 > bas1)
haut2 = haut2 - 1
Wend
End If

If (bas2 <= haut2) Then ' permutations des indices
temp = Idx(bas2)
Idx(bas2) = Idx(haut2)
Idx(haut2) = temp
bas2 = bas2 + 1
haut2 = haut2 - 1
End If
Wend
If haut2 > bas1 Then QSort bas1, haut2, Ascendant
If bas2 < haut1 Then QSort bas2, haut1, Ascendant
End Sub

'==============================================

' Appel avec les renseignements de l'interface GUI
Sub TriQSFeuilles()
Dim PF%, DF%
PF = Application.Max(1, UF1.PremièreF)
DF = Application.Min(Worksheets.Count, UF1.DernièreF)
TriLesFeuilles _
TriAscendant:=UF1.TriAsc, PremièreFeuille:=PF, _
DernièreFeuille:=DF, SensibleALaCasse:=UF1.Casse, _
ParChiffres:=UF1.ParChiffres
End Sub

Bérylion
 Posté le 22/03/2013 à 15:40 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

salut la foule

juste en passant, voila un ''truc'' que j'ai adapté d'un certain Laurent L.

l'algo de tri est de lui, c'est devenue une macro complémentaire qui propose un tri des feuilles dans le menu contextuel des onglets, quelque soit le classeur actif.

http://cjoint.com/?CCwpKFU6cyy

enjoy...

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
104,99 €SSD SanDisk Ultra 3D 1 To à 104,99 €
Valable jusqu'au 21 Septembre

Amazon fait une belle promotion sur le SSD SanDisk Ultra 3D d'une capacité de 1 To qui passe à 104,99 € livré gratuitement. On le trouve ailleurs autour de 130 €. Une bonne affaire pour ce SSD performant qui offre des débits de 560 Mo/s en lecture et 530 Mo/s en écriture. Cette version est garantie 3 ans.


> Voir l'offre
499,99 €PlayStation 5 à 499,99 € [Précommande]
Valable jusqu'au 20 Septembre

La PS5 avec lecteur Blu-Ray sortira le 19 Novembre en France. Il est d'ores et déjà possible de la précommander pour être certains d'avoir son exemplaire à la sortie. La disponibilité étant limitée, régardez régulièrement sur BoulangerAmazonCdiscount, FNAC.


> Voir l'offre
-15 €15 € de réduction à partir de 99 € d'achats chez Rakuten avec le code RAKUTEN15
Valable jusqu'au 20 Septembre

Rakuten propose un nouveau un code de réduction permettant d'obtenir 15 € de réduction dès 99 € d'achats sur son site. Pour profiter de cette offre, saisissez le code RAKUTEN15  dans votre panier. 


> Voir l'offre

Sujets relatifs
Creation d' une boucle macro dans fichier EXCEL pour impression
Macro pour ouverture d'un fichier Excel
(Macro) Copier onglet sur autre fichier Excel (2007)
Excel 2007 Affecter bouton barre d'outils à macro.
EXCEL RECHERCHEV pour autre fichier. Macro?
Comment rétablir Excel suite à une macro malveill
Macro VBA à l'ouverture d'un fichier Excel
sous vista comment lire un fichier excel
Excel : affecter une macro à une touche par VBA
excel : macro pour enregistrer un fichier
Plus de sujets relatifs à comment affecter une macro a un fichier excel ?
 > Tous les forums > Forum Bureautique