Activesheet
Dernière réponse : dans Programmation
Bonjour à tous,
J’ai un petit problème ! je veux faire une validation de données d’après une liste mais je voudrais pouvoir l’appliquer aux 12 feuilles de mon classeur sans avoir à dupliquer 12 fois la macro. Je ne parviens pas à trouver la bonne commande qui s’appliquerait à la feuille active et non au mois comme ci-dessous..
Merci de votre aide.
Voici la macro enregistrée.
J’ai un petit problème ! je veux faire une validation de données d’après une liste mais je voudrais pouvoir l’appliquer aux 12 feuilles de mon classeur sans avoir à dupliquer 12 fois la macro. Je ne parviens pas à trouver la bonne commande qui s’appliquerait à la feuille active et non au mois comme ci-dessous..
Merci de votre aide.
Voici la macro enregistrée.
Sub Macro1()
' Macro1 Macro
activeSheets.Select
Range("Février[Type]").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertInformation, _
Operator:=xlBetween, Formula1:="=type"
.IgnoreBlank = True
.InCellDropdown = True
.ErrorTitle = ""
.ErrorMessage = "eeeee"
.ShowInput = True
.ShowError = True
End With
Range("D71").Select
End Sub
Autres pages sur : activesheet
Lassé par la pub ? Créez un compte
Met ton code entre balise code , ça sera plus lisible ( tu edites > +d'options> code ) , je me permet de te le dire car je sais qu'on va te le demander ^^ .
Pour ton problème , je pense que tu devrais regarder du coté des fonctions VBA , tu peut créer ta propre fonction qui va répondre a tes besoins , mais je ne suis pas certaine donc attend des gens plus experimentés . ( F1 sur excel ou recherche sur google ) .
Bonne chance .
Aurélie .
Pour ton problème , je pense que tu devrais regarder du coté des fonctions VBA , tu peut créer ta propre fonction qui va répondre a tes besoins , mais je ne suis pas certaine donc attend des gens plus experimentés . ( F1 sur excel ou recherche sur google ) .
Bonne chance .
Aurélie .
aurelie1985 a dit :
Met ton code entre balise code , ça sera plus lisible ( tu edites > +d'options> code ) , je me permet de te le dire car je sais qu'on va te le demander ^^ .Pour ton problème , je pense que tu devrais regarder du coté des fonctions VBA , tu peut créer ta propre fonction qui va répondre a tes besoins , mais je ne suis pas certaine donc attend des gens plus experimentés . ( F1 sur excel ou recherche sur google ) .
Bonne chance .
Aurélie .
Merci Aurélie
j'ai déjà, avant d'écrire sur ce forum essayé diversses solutions aide excel ou sur différents sites de formation excel, mais je n'ai pas trouvé.
merci encore
Salut,
Merci Aurélie de faire la police pour moi. En fait, moi, je ne le fais que pour vous
Mais si, Mercure tu as trouvé. Au moins le bon site
---------------------
Alors, tout d'abord, il faut arrêter de se fier aux objets actifs.
Qu'est-ce qui te garantit que la cellule, la feuille, le classeur actif vont le rester, actifs ?
Ensuite, tu donnes un nom à une cellule - Février[Type]. C'est bien mais si tes feuilles ont des cellules nommées différemment, il va failloir faire autrement.
Par exemple, utiliser leurs coordonnées, avec Range() ou Cells().
Pour finir, pourquoi cette sélection de D71, à la fin ?
Eh, évidemment, il reste à fixer mafeuille.
Comme ça, par exemple :
Merci Aurélie de faire la police pour moi. En fait, moi, je ne le fais que pour vous
Mais si, Mercure tu as trouvé. Au moins le bon site
---------------------
Alors, tout d'abord, il faut arrêter de se fier aux objets actifs.
Qu'est-ce qui te garantit que la cellule, la feuille, le classeur actif vont le rester, actifs ?
Ensuite, tu donnes un nom à une cellule - Février[Type]. C'est bien mais si tes feuilles ont des cellules nommées différemment, il va failloir faire autrement.
Par exemple, utiliser leurs coordonnées, avec Range() ou Cells().
Pour finir, pourquoi cette sélection de D71, à la fin ?
With mafeuille.Cells(3, 4).Validation
.Delete
.Add ...
...
End With
Eh, évidemment, il reste à fixer mafeuille.
Comme ça, par exemple :
For Each mafeuille In Worksheets
...
Next
zeb a dit :
Salut,Merci Aurélie de faire la police pour moi. En fait, moi, je ne le fais que pour vous
Mais si, Mercure tu as trouvé. Au moins le bon site
---------------------
Alors, tout d'abord, il faut arrêter de se fier aux objets actifs.
Qu'est-ce qui te garantit que la cellule, la feuille, le classeur actif vont le rester, actifs ?
Ensuite, tu donnes un nom à une cellule - Février[Type]. C'est bien mais si tes feuilles ont des cellules nommées différemment, il va failloir faire autrement.
Par exemple, utiliser leurs coordonnées, avec Range() ou Cells().
Pour finir, pourquoi cette sélection de D71, à la fin ?
With mafeuille.Cells(3, 4).Validation
.Delete
.Add ...
...
End With
Eh, évidemment, il reste à fixer mafeuille.
Comme ça, par exemple :
For Each mafeuille In Worksheets
...
Next
Bonjour à tous et merci
j'ai testé la solution que j'avais posté mais je ne la vois pas je la réédite
Sub Validation_type()
'
Range("d3:d100").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertInformation, _
Operator:=xlBetween, Formula1:="=typeV"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Range("d5").Select
End Sub
Le range à la fin cest pour me repositionner dans la feuile et sotir de la sélection. Range("d71").Select, était une erreur. merci encore et à bientot.
Fais attention à toi, je suis TRES susceptible.
Mais je ne suis ni méchant, ni impatient.
Alors je vais t'expliquer. Et si tu le demandes, continuer à te proposer d'autres choses. Et à les expliquer.....
L'enregistreur fait ce qu'il peut, soit peu. Et ce qu'il enregistre, ce sont des manipulation à la main, qu'il programme digne de ce nom ne doit pas toujours faire. Par exemples, sélectionner quoi que ce soit avant de s'en servir est inutile, voire consommateur de ressource ; se servir du presse-papier pour retenir des informations uniquement utile au programme est strictement à prohiber quand on programme, etc.
Donc on enregistre :
Mais on corrige comme ceci, pour retirer toute sélection et toute manipulation par le presse-papier inutiles :
Pour moi, c'est tellement plus clair et plus facile !
----------------
Ce que tu proposes est la solution ?
Parce que tu n'expliques pas grand' chose, toi
Mais je ne suis ni méchant, ni impatient.
Alors je vais t'expliquer. Et si tu le demandes, continuer à te proposer d'autres choses. Et à les expliquer.....
L'enregistreur fait ce qu'il peut, soit peu. Et ce qu'il enregistre, ce sont des manipulation à la main, qu'il programme digne de ce nom ne doit pas toujours faire. Par exemples, sélectionner quoi que ce soit avant de s'en servir est inutile, voire consommateur de ressource ; se servir du presse-papier pour retenir des informations uniquement utile au programme est strictement à prohiber quand on programme, etc.
Donc on enregistre :
Range("A1").Select Selection.Copy Range("B1").Select Paste
Mais on corrige comme ceci, pour retirer toute sélection et toute manipulation par le presse-papier inutiles :
Range("A1").Copy Destination:=Range("B1")
Pour moi, c'est tellement plus clair et plus facile !
----------------
Ce que tu proposes est la solution ?
Parce que tu n'expliques pas grand' chose, toi
zeb a dit :
Fais attention à toi, je suis TRES susceptible.Mais je ne suis ni méchant, ni impatient.
Alors je vais t'expliquer. Et si tu le demandes, continuer à te proposer d'autres choses. Et à les expliquer.....
L'enregistreur fait ce qu'il peut, soit peu. Et ce qu'il enregistre, ce sont des manipulation à la main, qu'il programme digne de ce nom ne doit pas toujours faire. Par exemples, sélectionner quoi que ce soit avant de s'en servir est inutile, voire consommateur de ressource ; se servir du presse-papier pour retenir des informations uniquement utile au programme est strictement à prohiber quand on programme, etc.
Donc on enregistre :
Range("A1").Select
Selection.Copy
Range("B1").Select
Paste
Mais on corrige comme ceci, pour retirer toute sélection et toute manipulation par le presse-papier inutiles :
Range("A1").Copy Destination:=Range("B1")
Pour moi, c'est tellement plus clair et plus facile !
----------------
Ce que tu proposes est la solution ?
Parce que tu n'expliques pas grand' chose, toi
Merci Zeb pour tes explications
Nous partons chez nos enfants pour une huitaine mais rentrant je mettrais certainement à contribution, si tu me le permet,
Bonne soirée à bientôt
Lassé par la pub ? Créez un compte