> 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 participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
Mini PC NiPoGi H1 (Ryzen 7 6800HU, 16 Go RAM, SSD 512 Go, Radeon 680M, Windows 11 Pro)
333,48 € 429 € -22%
@Amazon
Portable 15.6 pouces Lenovo IdeaPad 1 15ALC7 (FullHD, Ryzen 7 5700U, 16 Go, SSD 512 Go, sans OS)
429,99 € 649 € -34%
@Cdiscount
Ecran portable 15,6 pouces Arzopa (FullHD, IPS, USB-C)
81,22 € 119 € -32%
@Amazon
Casque Audio Sans-fil Bose QuietComfort SC
165,99 € 269,99 € -39%
@Cdiscount
Lot de 2 sachets de café en grains entiers Melitta Bellacrema (2x1 Kg)
22,06 € 34,98 € -37%
@Amazon
Mini PC ACEMAGICIAN Vista V1 (Alder Lake N97, 16 Go RAM, SSD 256 Go, Windows 11)
150,41 € 179,99 € -16%
@Amazon

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