fanjomtl
Messages postés20Date d'inscriptionjeudi 11 novembre 2004StatutMembreDernière intervention27 janvier 2008
-
13 juin 2007 à 22:43
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 2011
-
15 juin 2007 à 07:05
Bonjour à tous chers amis,
Dans excel, j'aimerais pouvoir gérer des "blocs" de cellules.
Par exemple, j'aimerais que les cases A1 A2 A3 et A4 soit appelés "MesCasesA"
et ensuite dans mon code vba, si je veux effacer le contenu de ces cellules, je voudrais pouvoir faire en une seule fois :
Range("MesCasesA").ClearContents
Question: À quel endroit et comment je fais pour grouper les cases A1 A2 A3 et A4 et les appeler "MesCasesA" ?
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 14 juin 2007 à 15:39
Re,
Beh pour ton 1/ :
Quand toi tu lances ton programme (admettons tu lances un UserForm, tu peux le mettre à l'évènement Initialize de ta Form)
Par contre, pense à la supprimer au Unload de ton UserForm :
ActiveWorkbook.Names("MesCasesA").Delete
Pour ton 2/ :
Tu veux donc définir la plage B1:C2.
La première cellule est B1, donc c'est la première ligne, et la deuxième colonne.--> Row 1 & Column 2
La première cellule est C2, donc c'est la deuxième ligne, et la troisième colonne.
fanjomtl
Messages postés20Date d'inscriptionjeudi 11 novembre 2004StatutMembreDernière intervention27 janvier 2008 14 juin 2007 à 15:28
Salut et merci
1) A quel endroit dois-je écrire le ActiveWorkbook.etc.... ? Dans une fonction initialize ? (J'aimerais que le groupement soit effectivement pendant toute la durée de mon programme)
2) Ok et si je veux grouper les cases B1,B2,C1 et C2 comment écrire ce genre de combinaison ?
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
fanjomtl
Messages postés20Date d'inscriptionjeudi 11 novembre 2004StatutMembreDernière intervention27 janvier 2008 14 juin 2007 à 19:20
Merci pour la zone multiple.
Désolé pour ma persistance mais je débute avec excel donc je ne comprend pas tout...
Je n'utilise pas de useform (donc pas de initialize)
Par contre, j'ai deux boutons dans mon fichier :
J'ai des cases que l'utilisateur peut cliquer dès qu'il ouvre le fichier excel.
Quand il en sélectionne 3, le bouton OK devient cliquable et je fais un traitement avec les cases qu'il a cliqué.
A tout moment, il peut cliquer sur le bouton RESET qui annule la sélection des cases.
Du coup, il faudrait que je mette
ActiveWorkbook.Names.Add Name:="MesCasesBetC", RefersToR1C1:="=NomFeuille!R1C2:R2C3"
de façon à ce qu'il soit éxécuté à l'ouverture du fichier excel (et qu'il "reste en mémoire" jusqu'à ce qu'on ferme le fichier)
(je ne peux donc pas juste le mettre dans les événement de type Boutons_Click() )
fanjomtl
Messages postés20Date d'inscriptionjeudi 11 novembre 2004StatutMembreDernière intervention27 janvier 2008 14 juin 2007 à 20:53
Alors j'ai une erreur de nom ... Je te donne ce que j'ai.
Dans mon "ThisWorkbook", j'ai :
Private Sub Workbook_Open()
ActiveWorkbook.Names.Add Name:= "EnsembleA", RefersToR1C1:="=NomFeuille!R10C2:R30C3"
End Sub
-------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveWorkbook.Names("EnsembleA").Delete
End Sub
-------------------------
Dans mon "Feuil1(MonProg)" j'ai :
Private Sub BoutonInitialiser_Click()
Dim ensemble As Range
Sheets("MonProg").Activate
Set ensemble = Range("EnsembleA")
....
End Sub
Quand je clique sur le bouton Initialiser j'obtiens le message d'erreur :
Erreur d'exécution '1004':
La méthode 'Range' de l'objet '_Worksheet' a échoué
En cliquant sur Déboguage je tombe sur ma ligne
Set ensemble = Range("EnsembleA")
C'est comme si il ne reconnaissait pas le nom EnsembleA ...
Une idée
fanjomtl
Messages postés20Date d'inscriptionjeudi 11 novembre 2004StatutMembreDernière intervention27 janvier 2008 15 juin 2007 à 06:58
Salut...
bon c'est à n'y rien comprendre (ça arrive souvent en info).... j'ai fermé excel pendant quelques heures et au moment de retravailler, tout fonctionne comme voulu...
Tant mieux ! Étant donné que le Sub et la Function étaient dans la même Feuil1, je comprend vraiment pas pourquoi tout à l'heure il ne voulait pas reconnaitre les noms donnés aux groupes de cellules dans la Function alors qu'il les reconaissait dans le Sub....
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 15 juin 2007 à 07:05
Tant mieux.
Pour infos, si tu as mis ta function dans le module de code de ta Feuil1, et que tu appelles cette fonction depuis un autre module (par exemple, le module de code ThisWorkbook, là où se trouvent WorkBook_Open et BeforeClose), ça ne fonctionnera pas.
Il faut de ce cas précis placer ta fonction dans un Module supplémentaire (menu Insertion, Module) pour que celle -ci soit accessible partout dans ton projet.