OVH Cloud OVH Cloud

Tableau récapitulatif

5 réponses
Avatar
ed
Bonjour,
J'ai un classeur xls avec un certain nombre d'onglets.
Je souhaite créer un onglet supplémentaire et y insérer un tableau
récapitulatif des onglets de mon classeur.
Suivant le cas, le nombre d'onglets peut varier d'un fichier à l'autre

Voici ma macro:

Sub ()
Dim mafeuille As Object
Application.ScreenUpdating = False
Sheets("Tableau").Select
Range("B1").Activate 'début du tableau
For Each mafeuille In ActiveWorkbook.Sheets
mafeuille.Select
Range("K26").Select
Selection.Copy
Call ColleValeur
Next
Range("B1").Select
End Sub
Sub ColleValeur()
Sheets("Tableau").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone
Selection.Offset(1, 0).Select
End Sub

Mon pb est que je souhaiterai que l'onglet "'tableau" ne soit pas concerné
par cette macro (autrement dit, que toutes les feuilles SAUF Tableau lisent
ma macro.
Est-ce possible? comment dois je faire?

Merci de votre aide
ed

5 réponses

Avatar
gérard
salut
quelque chose comme ca

Sub Recap()

Application.ScreenUpdating = False
Sheets("Tableau").Select
Range("B1").Activate 'début du tableau
For Each sh In Worksheets
MsgBox sh.Name
If sh.Name = "Tableau" Then ' ne fait rien
Else
sh.Select
Range("K26").Select
Selection.Copy
Call ColleValeur
End If
Next sh
Range("B1").Select
End Sub

A+
gerard
"ed" a écrit dans le message de news:

Bonjour,
J'ai un classeur xls avec un certain nombre d'onglets.
Je souhaite créer un onglet supplémentaire et y insérer un tableau
récapitulatif des onglets de mon classeur.
Suivant le cas, le nombre d'onglets peut varier d'un fichier à l'autre

Voici ma macro:

Sub ()
Dim mafeuille As Object
Application.ScreenUpdating = False
Sheets("Tableau").Select
Range("B1").Activate 'début du tableau
For Each mafeuille In ActiveWorkbook.Sheets
mafeuille.Select
Range("K26").Select
Selection.Copy
Call ColleValeur
Next
Range("B1").Select
End Sub
Sub ColleValeur()
Sheets("Tableau").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone
Selection.Offset(1, 0).Select
End Sub

Mon pb est que je souhaiterai que l'onglet "'tableau" ne soit pas concerné
par cette macro (autrement dit, que toutes les feuilles SAUF Tableau
lisent
ma macro.
Est-ce possible? comment dois je faire?

Merci de votre aide
ed


Avatar
ed
Merci gérard, mais cela me donne le nom des feuilles dans une msg box THEN...
'ne fait rien --- ÇA BUGUE.

Merci qd meme
ed

Si qqun a une autre idée, je prends.





salut
quelque chose comme ca

Sub Recap()

Application.ScreenUpdating = False
Sheets("Tableau").Select
Range("B1").Activate 'début du tableau
For Each sh In Worksheets
MsgBox sh.Name
If sh.Name = "Tableau" Then ' ne fait rien
Else
sh.Select
Range("K26").Select
Selection.Copy
Call ColleValeur
End If
Next sh
Range("B1").Select
End Sub

A+
gerard
"ed" a écrit dans le message de news:

Bonjour,
J'ai un classeur xls avec un certain nombre d'onglets.
Je souhaite créer un onglet supplémentaire et y insérer un tableau
récapitulatif des onglets de mon classeur.
Suivant le cas, le nombre d'onglets peut varier d'un fichier à l'autre

Voici ma macro:

Sub ()
Dim mafeuille As Object
Application.ScreenUpdating = False
Sheets("Tableau").Select
Range("B1").Activate 'début du tableau
For Each mafeuille In ActiveWorkbook.Sheets
mafeuille.Select
Range("K26").Select
Selection.Copy
Call ColleValeur
Next
Range("B1").Select
End Sub
Sub ColleValeur()
Sheets("Tableau").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone
Selection.Offset(1, 0).Select
End Sub

Mon pb est que je souhaiterai que l'onglet "'tableau" ne soit pas concerné
par cette macro (autrement dit, que toutes les feuilles SAUF Tableau
lisent
ma macro.
Est-ce possible? comment dois je faire?

Merci de votre aide
ed







Avatar
Youky
Bonsoir gérard,
ed aussi,
il faut éviter dans tous les cas la méthode Select, cela ralenti les macros
on y va direct ....enfin presque
Youky

Sub recap()
For onglet = 1 To Sheets.Count
If Sheets(onglet).Name <> "Tableau" Then
lig = lig + 1
Sheets("Tableau").Cells(lig, 2) = Sheets(onglet).[K26]
End If
Next
End Sub

"gérard" a écrit dans le message de news:
443953f9$0$21299$
salut
quelque chose comme ca

Sub Recap()

Application.ScreenUpdating = False
Sheets("Tableau").Select
Range("B1").Activate 'début du tableau
For Each sh In Worksheets
MsgBox sh.Name
If sh.Name = "Tableau" Then ' ne fait rien
Else
sh.Select
Range("K26").Select
Selection.Copy
Call ColleValeur
End If
Next sh
Range("B1").Select
End Sub

A+
gerard
"ed" a écrit dans le message de news:

Bonjour,
J'ai un classeur xls avec un certain nombre d'onglets.
Je souhaite créer un onglet supplémentaire et y insérer un tableau
récapitulatif des onglets de mon classeur.
Suivant le cas, le nombre d'onglets peut varier d'un fichier à l'autre

Voici ma macro:

Sub ()
Dim mafeuille As Object
Application.ScreenUpdating = False
Sheets("Tableau").Select
Range("B1").Activate 'début du tableau
For Each mafeuille In ActiveWorkbook.Sheets
mafeuille.Select
Range("K26").Select
Selection.Copy
Call ColleValeur
Next
Range("B1").Select
End Sub
Sub ColleValeur()
Sheets("Tableau").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone
Selection.Offset(1, 0).Select
End Sub

Mon pb est que je souhaiterai que l'onglet "'tableau" ne soit pas
concerné
par cette macro (autrement dit, que toutes les feuilles SAUF Tableau
lisent
ma macro.
Est-ce possible? comment dois je faire?

Merci de votre aide
ed






Avatar
gérard
salut
suit ta procedure avec F8, et tu verras que ca travail si la feuille ne
s'appelle pas Tableau
ensuite il y apeut etre a adapter un petit peu
a+
"ed" a écrit dans le message de news:

Merci gérard, mais cela me donne le nom des feuilles dans une msg box
THEN...
'ne fait rien --- ÇA BUGUE.

Merci qd meme
ed

Si qqun a une autre idée, je prends.





salut
quelque chose comme ca

Sub Recap()

Application.ScreenUpdating = False
Sheets("Tableau").Select
Range("B1").Activate 'début du tableau
For Each sh In Worksheets
MsgBox sh.Name
If sh.Name = "Tableau" Then ' ne fait rien
Else
sh.Select
Range("K26").Select
Selection.Copy
Call ColleValeur
End If
Next sh
Range("B1").Select
End Sub

A+
gerard
"ed" a écrit dans le message de news:

Bonjour,
J'ai un classeur xls avec un certain nombre d'onglets.
Je souhaite créer un onglet supplémentaire et y insérer un tableau
récapitulatif des onglets de mon classeur.
Suivant le cas, le nombre d'onglets peut varier d'un fichier à l'autre

Voici ma macro:

Sub ()
Dim mafeuille As Object
Application.ScreenUpdating = False
Sheets("Tableau").Select
Range("B1").Activate 'début du tableau
For Each mafeuille In ActiveWorkbook.Sheets
mafeuille.Select
Range("K26").Select
Selection.Copy
Call ColleValeur
Next
Range("B1").Select
End Sub
Sub ColleValeur()
Sheets("Tableau").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone
Selection.Offset(1, 0).Select
End Sub

Mon pb est que je souhaiterai que l'onglet "'tableau" ne soit pas
concerné
par cette macro (autrement dit, que toutes les feuilles SAUF Tableau
lisent
ma macro.
Est-ce possible? comment dois je faire?

Merci de votre aide
ed









Avatar
ed
Youky ça marche !!!
Merci bcp...
ed


Bonsoir gérard,
ed aussi,
il faut éviter dans tous les cas la méthode Select, cela ralenti les macros
on y va direct ....enfin presque
Youky

Sub recap()
For onglet = 1 To Sheets.Count
If Sheets(onglet).Name <> "Tableau" Then
lig = lig + 1
Sheets("Tableau").Cells(lig, 2) = Sheets(onglet).[K26]
End If
Next
End Sub

"gérard" a écrit dans le message de news:
443953f9$0$21299$
salut
quelque chose comme ca

Sub Recap()

Application.ScreenUpdating = False
Sheets("Tableau").Select
Range("B1").Activate 'début du tableau
For Each sh In Worksheets
MsgBox sh.Name
If sh.Name = "Tableau" Then ' ne fait rien
Else
sh.Select
Range("K26").Select
Selection.Copy
Call ColleValeur
End If
Next sh
Range("B1").Select
End Sub

A+
gerard
"ed" a écrit dans le message de news:

Bonjour,
J'ai un classeur xls avec un certain nombre d'onglets.
Je souhaite créer un onglet supplémentaire et y insérer un tableau
récapitulatif des onglets de mon classeur.
Suivant le cas, le nombre d'onglets peut varier d'un fichier à l'autre

Voici ma macro:

Sub ()
Dim mafeuille As Object
Application.ScreenUpdating = False
Sheets("Tableau").Select
Range("B1").Activate 'début du tableau
For Each mafeuille In ActiveWorkbook.Sheets
mafeuille.Select
Range("K26").Select
Selection.Copy
Call ColleValeur
Next
Range("B1").Select
End Sub
Sub ColleValeur()
Sheets("Tableau").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone
Selection.Offset(1, 0).Select
End Sub

Mon pb est que je souhaiterai que l'onglet "'tableau" ne soit pas
concerné
par cette macro (autrement dit, que toutes les feuilles SAUF Tableau
lisent
ma macro.
Est-ce possible? comment dois je faire?

Merci de votre aide
ed