Application code sur toutes les feuilles d'un classeur
Robikatchou
Messages postés50Date d'inscriptionmardi 7 juillet 2009StatutMembreDernière intervention28 août 2009
-
5 août 2009 à 14:40
Robikatchou
Messages postés50Date d'inscriptionmardi 7 juillet 2009StatutMembreDernière intervention28 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
A voir également:
Application code sur toutes les feuilles d'un classeur
Robikatchou
Messages postés50Date d'inscriptionmardi 7 juillet 2009StatutMembreDernière intervention28 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
Robikatchou
Messages postés50Date d'inscriptionmardi 7 juillet 2009StatutMembreDernière intervention28 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
Calade
Messages postés1207Date d'inscriptiondimanche 20 avril 2003StatutMembreDernière intervention 4 juin 201610 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
Vous n’avez pas trouvé la réponse que vous recherchez ?
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 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 ?
Robikatchou
Messages postés50Date d'inscriptionmardi 7 juillet 2009StatutMembreDernière intervention28 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
Robikatchou
Messages postés50Date d'inscriptionmardi 7 juillet 2009StatutMembreDernière intervention28 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 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