declarer des variables

  • Initiateur de la discussion Emma
  • Date de début
E

Emma

Guest
bonsoir à tous,


Juste une petite question d'une néophyte.
est il possible de déclarer comme variables des zones de cellules
par exemple: la plage de cellule a12:g20 de la feuille 1 comme variable A
la page de cellule P16:V22 de la feuille toto comme varaible B
et ainsi de suite.

faut il mieux employer dim set ou const?

et ou faut il le placer pour qu'elles soient commune à tout le classeur quelque soit la feuille active .......Peut etre en PUBLIC ???????

pourra on demander à excel de copier tel info vers tel variable A ou B?

J'avoue être un peu perdue. car c'est la base du vba .



toc ! toc! quelqu'un pourra il m'aider. merci
 
P

Pierre

Guest
Bonsoir emma,

loin d'être un spécialiste vba voici quelques pistes

dim te sert à déteminer le type de ta variable elle sera range, boolean, byte,.. selon ton bon vouloir
set te sert à affecter ta variable par exemple le plage x:y dans la feuil1
const te sert à déterminer une constante

pour avoir un code disponible pour l'ensemble du classeur, tu la mettra dans this workbook

en exemple

dim zone1, zone2 as range (détermine une variable de type range)
set zone1 = worksheets ("feuil1").range ("a12:g20") (affecte la plage de ta feuille à la variable zone)
set zone2 = worksheets ("feuil1").range("a3:b7")...
Y vois-tu plus clair?
 
E

Emma

Guest
merci cela m' aider mais je n'arrive toujours pas a automatiser une opération


je m'explique : j'ai une feuille qui me sert de formulaire en fonction du type de cours je doit remplir d'autre feuille (une part zone de bureau)

dans la feuille FORM je rentre le type de cours en j1 et le noms des eleves en fonction des salles, par ex, La salle zone1 correspond aux noms A4:A8 de ma feuille form.

j'aimerai qu'excel verifie l'etat worksheets("zone1").range("A4") vide ou pas.
si vide passe à coté ("d4") si pas vide copie les valeurs A4:A8

avec ces valeurs, il ouvre la feuille zone1 (correspond au choix puisque les nom ont ete entres en A4 de la feuille form) puis les copies en P14:p18 si la cellule P12 est vide sinon il passe à coté jusqu'à la dernière colonne V12.( si vide copie en V14:V18).

cette opération je dois la répeter selon :
- deux cours differents
- 12 zones differentes (avec 7 colonnes chacunes)

bref je n'arrive pas à automatiser cette operation
en fonction du cours, des plages ou sont rentres les noms, mais surtout que si la cellule est vide on passe à cote.


excel est peut être sexiste ?
 
P

Pierre

Guest
Emma,
Le Forum,

Pour teste une cellule tu peux passer par un if..then
par exemple
if range("b7") = "" then (si la cellule b7 est vide alors)
cell.offset (0,1).select (sélectionne la cellule située une cellule à droite de celle nommé "cell" qui peut être la cellule active)
Si tu le souhaite tu peux envoyer dans ma bal le fichier (à moins que les fichiers joint ne fonctionnent à nouveau) en ré-expliquant dans le fichier ce que tu attends du code. Je ne te garanti rien, mais je peux "jeter un oeil".

Bonne soirée.

Pierre
 

Discussions similaires

Réponses
28
Affichages
1 K
Réponses
2
Affichages
294

Statistiques des forums

Discussions
312 305
Messages
2 087 087
Membres
103 461
dernier inscrit
dams94