Documentation du Dr FRAPPE

Ce wiki regroupe les résultats de mes expériences en informatique accumulés au cours de mes recherches sur le net.

Dans la mesure du possible, j'ai cité mes sources ; il en manque certainement… :-)

Ceci est une ancienne révision du document !


Noms et objets en VBA

Retrouver les noms des graphiques :

Dans Excel, menu Edition / Atteindre… / Cellules…, cocher objets et OK

On se déplace entre les objets par Tab. Leur nom apparaît en haut à gauche dans la zone de nom.

Nommer une plage de cellules de longueur variable

Le code à mettre dans le userform/initialize est :

Private Sub UserForm_Initialize()
  ActiveWorkbook.Names.Add Name:="nomListe", RefersTo:="=OFFSET(Feuille!a1:b1,,,COUNTA(Feuille!a:a))"
  cmbBoutonDepart.RowSource = "nomListe"
End Sub

Feuille est le nom de l'onglet dans excel…

<note tip> Extrait de l'aide d'Excel sur

Decaler(réf;lignes;colonnes;hauteur;largeur)

DECALER

Renvoie une référence à une plage qui correspond à un nombre déterminé de lignes et de colonnes d'une cellule ou plage de cellules. La référence qui est renvoyée peut être une cellule unique ou une plage de cellules. Vous pouvez spécifier le nombre de lignes et de colonnes à renvoyer.

Syntaxe

DECALER(réf;lignes;colonnes;hauteur;largeur)

réf est la référence par rapport à laquelle le décalage doit être opéré. L'argument réf doit être une référence à une cellule ou à une plage de cellules adjacentes ; sinon, la fonction DECALER renvoie la valeur d'erreur #VALEUR!.

lignes est le nombre de lignes vers le haut ou vers le bas dont la cellule supérieure gauche de la référence renvoyée doit être décalée. Si l'argument lignes est égal à 5, la cellule supérieure gauche de la référence est décalée de cinq lignes en dessous de la référence. L'argument lignes peut être positif (c'est-à-dire en dessous de la référence de départ) ou négatif (c'est-à-dire au-dessus de la référence de départ).

colonnes est le nombre de colonnes vers la droite ou vers la gauche dont la cellule supérieure gauche de la référence renvoyée doit être décalée. Si l'argument colonnes est égal à 5, la cellule supérieure gauche de la référence est décalée de cinq colonnes vers la droite par rapport à la référence. L'argument colonnes peut être positif (c'est-à-dire à droite de la référence de départ) ou négatif (c'est-à-dire à gauche de la référence de départ).

hauteur est la hauteur, exprimée en nombre de lignes que la référence renvoyée doit avoir. L'argument hauteur doit être un nombre positif.

largeur est la largeur, exprimée en nombre de colonnes que la référence renvoyée doit avoir. L'argument largeur doit être un nombre positif.

Notes

Si les arguments hauteur ou largeur sont omis, les valeurs par défaut des arguments hauteur et largeur sont celles de l'argument réf.

La fonction DECALER n'a pas pour rôle de décaler physiquement les cellules dans la feuille ni de modifier la sélection ; elle renvoie simplement une référence. La fonction DECALER peut être utilisée avec toutes les fonctions exigeant une référence comme argument. Par exemple, la formule SOMME(DECALER(C2;1;2;3;1)) calcule la valeur totale de la plage couvrant 3 lignes sur 1 colonne et se situant 1 ligne en dessous et 2 colonnes à droite de la cellule C2.

Exemple

L'exemple sera plus compréhensible si vous le copiez dans une feuille de calcul vide.

Procédure

Créez un classeur ou une feuille de calcul vide. Sélectionnez l'exemple de la rubrique d'aide. Ne sélectionnez pas les en-têtes des lignes ou des colonnes.

Sélection d'un exemple de l'aide

Appuyez sur CTRL+C. Dans la feuille de calcul, sélectionnez la cellule A1 et appuyez sur CTRL+V. Pour passer de l'affichage des résultats à celui des formules permettant de renvoyer les résultats, appuyez sur CTRL+` (apostrophe), ou dans le menu Outils, pointez sur Audit des formules, puis cliquez sur Mode d'audit des formules.

1 2 3 4 A B Formule Description (résultat) =DECALER(C3;2;3;1;1) Affiche la valeur contenue dans la cellule F5 (0) =SOMME(DECALER(C3:E5;-1;0;3;3)) Totalise la plage C2:E4 (0) =DECALER(C3:E5;0;-3;3;3) Renvoie une erreur, car la référence ne se trouve pas sur la feuille de calcul (#REF!)

</note>

S'il y a une ligne de titre:

ActiveWorkbook.Names.Add Name:="nomListe", RefersTo:="=OFFSET(Feuille!a1:b1,1,,COUNTA(Feuille!a:a)-1)"
  • réf : Feuille!a1:b1
  • lignes : 1
  • colonnes : vide
  • hauteur : COUNTA(Feuille!a:a)-1
  • largeur : vide

Donc ici,

  • nous partons de la zone a1:b1
  • nous la décalons d'une ligne vers le bas et pas vers la droite
  • nous prenons le nombre de lignes où la colonne a n'est pas vide moins un (pour le titre)
  • et gardons la même largeur (2 colonnes)

Utiliser un chemin relatif

Il suffit d'employer les fonctions :

  • avec Access : CurrentProject.Path
  • avec Excel : ActiveWorkbook.Path
  • avec Word : ActiveDocument.Path

dans les chemins utilisés, par exemple :

ActiveWorkbook.Path & "\monrépertoire\monfichier.txt"