Application code sur toutes les feuilles d'un classeur

Robikatchou Messages postés 50 Date d'inscription mardi 7 juillet 2009 Statut Membre Dernière intervention 28 août 2009 - 5 août 2009 à 14:40
Robikatchou Messages postés 50 Date d'inscription mardi 7 juillet 2009 Statut Membre Dernière intervention 28 août 2009 - 6 août 2009 à 10:08
Bonjour

Je souhaite qu'à l'ouverture du classeur toute les feuilles se mettent sur un cellule vide
j'ai tenté ce code mais ça n'a pas l'air de marché
j'en suis à mon cinquantième essai avec des if, for, et autres boucles genre if isempty(cells (i,1)) then
cells(i,1).select

Private Sub Workbook_Open()
Dim Sht As Worksheet
For Each Sht In ActiveWorkbook.Worksheets
Cells.SpecialCells(xlCellTypeBlanks).Select
Next Sht
End Sub

Un peu d'aide ne serai pas de refus merci
Robert

9 réponses

Robikatchou Messages postés 50 Date d'inscription mardi 7 juillet 2009 Statut Membre Dernière intervention 28 août 2009
5 août 2009 à 14:56
Autre essai infructeux


Private Sub Workbook_Open()
Dim Sht As Worksheet
Dim ii As Integer
For Each Sht In ActiveWorkbook.Worksheets

Do While Not IsEmpty(ActiveSheet.Cells(ii, 1))
ii = ii + 1
Loop

Cells(ii, 1).Select
Next Sht
End Sub


Roberto RIQUELME
0
Robikatchou Messages postés 50 Date d'inscription mardi 7 juillet 2009 Statut Membre Dernière intervention 28 août 2009
5 août 2009 à 15:03
Mea culpa
this code marche plutôt mieux

Private Sub Workbook_Open()
Dim Sht As Worksheet
Dim ii As Integer
For Each Sht In ActiveWorkbook.Worksheets
Sht.Activate
ii = 1
Do While Not (IsEmpty(ActiveSheet.Cells(ii, 1)))
ii = ii + 1
Loop

Cells(ii, 1).Select
Next Sht
End Sub

Roberto RIQUELME
0
Robikatchou Messages postés 50 Date d'inscription mardi 7 juillet 2009 Statut Membre Dernière intervention 28 août 2009
5 août 2009 à 15:11
Du coup ma question ce prolonge
peut-on appliquer à tous les classeurs??

En fait j'ai mis le code du message précédent dans le WorkBOOK de Perso.XLS
et j'ai une erreur qui reviens à l'ouverture de chaque classeur:

"erreur d'éxecution '91':
Variable objet ou variable de bloc With non définie"


Private Sub Workbook_Open()
Dim Sht As Worksheet
Dim ii As Integer
For Each Sht In ActiveWorkbook.Worksheets
Sht.Activate
ii = 1
Do While Not (IsEmpty(ActiveSheet.Cells(ii, 1)))
ii = ii + 1
Loop

Cells(ii, 1).Select
Next Sht
End Sub


Roberto RIQUELME
0
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
5 août 2009 à 15:21
Bonjour,

La ligne que tu as mise en rouge fait référence au classeur ouvert, c'est à dire dans ce cas ton Perso.XLS, or d'après ce que j'ai vu sur le mien, c'est un classeur particulier qui ne contient aucun onglet (seulement le code de tes macros applicables à tous tes classeurs), d'où l'erreur que tu obtiens.

Pour le vérifier, ouvre perso.xls tout seul, tu ne verras aucun onglet, simplement dans l'explorateur de projet, il y a bien une feuille nommé "Feuil1" mais tu ne pas aller dessus.

En espérant que cela t'aidera.


Calade
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Robikatchou Messages postés 50 Date d'inscription mardi 7 juillet 2009 Statut Membre Dernière intervention 28 août 2009
5 août 2009 à 15:59
Pas trop à vrai dire.

Je sais pas où placer le code pour que qd n'importe quel classeur s'ouvre
ce code s'execute

Roberto RIQUELME
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
5 août 2009 à 17:00
Salut
Et simplement ça, teste voir :
For Each Sht In Worksheets


Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
5 août 2009 à 17:33
comprends rien

cela veut dire quoi :

Je souhaite qu'à l'ouverture du classeur toute les feuilles se mettent sur un cellule vide




precise aussi :

peut-on appliquer à tous les classeurs??


- toujours, c'est à dire des que excel est ouvert ?
- uniquement quand perso.xls est ouvert ?
- à tous les classeur déjà ouvert ?
- au classeur nouvellement ouvert ?
0
Robikatchou Messages postés 50 Date d'inscription mardi 7 juillet 2009 Statut Membre Dernière intervention 28 août 2009
5 août 2009 à 17:56
Jack
j'essaie ta solution dès demain.

Big Fish : voici le code que je met à l'ouverture d'un classeur et ça marche : sur chaque feuille du dit classeur la cellule active est une cellule vide!
Mon problème c'est que je souhaite que ce code s'éxecute pour n'importe quel classeur que j'ouvre : "toujours, c'est à dire des que excel est ouvert ?"

Private Sub Workbook_Open()
Dim Sht As Worksheet
Dim ii As Integer
For Each Sht In ActiveWorkbook.Worksheets
Sht.Activate
ii = 1
Do While Not (IsEmpty(ActiveSheet.Cells(ii, 1)))
ii = ii + 1
Loop

Cells(ii, 1).Select
Next Sht
End Sub


j'espère que je me suis fait comprendre

merci

Roberto
0
Robikatchou Messages postés 50 Date d'inscription mardi 7 juillet 2009 Statut Membre Dernière intervention 28 août 2009
6 août 2009 à 10:08
Bonjour,

J'ai fini par me servir d'un menu créé par us_30 il y a quelques semaines j'ai rajouté une remise à zéro sur le menu avec ce code pour procédure. Ca marche très bien... mais c'est pas à l'ouverture d'excel.
Pas grave
Merci à vous

Dim Classeur As Workbook
Dim Feuil As Worksheet
Dim ii As Integer
Dim nFeuil As String
Dim nClasseur As String


'Désactive la mise à jour de l'affichage
Application.ScreenUpdating = False

'Selection courante
nClasseur = ActiveWorkbook.Name

' Algo de calculs
For Each Classeur In Workbooks

'Selection Classeur

Classeur.Activate

'Selection feuille active
nFeuil = ActiveSheet.Name

For Each Feuil In Worksheets

If Feuil.Visible = xlSheetVisible Then
Feuil.Activate
ii = 1
Do While Not (IsEmpty(ActiveSheet.Cells(ii, 1)))
ii = ii + 1
Loop
Cells(ii, 1).Select
End If

Next

Sheets(nFeuil).Select

Next

'Selection initiale
Windows(nClasseur).Activate

'Ré-activations
Application.ScreenUpdating = True


Roberto
0
Rejoignez-nous