Figer la référence à une colonne d'un tableau

Excellente année à tous et pour maintenir les neurones en pleine forme, voici un petit récapitulatif très important pour l'utilisation des tables.

En partant d'un tableau comme celui-ci

- La recopie vers la droite va décaler les références aux colonnes de tableaux
Tableau2[CA] devient Tableau2[Profit]

- Un copier-coller ne va pas décaler les références
Tableau2[CA] reste Tableau2[CA]

- On peut "figer" la référence à une colonne d'un tableau en ajoutant une deuxième fois le nom de la colonne. Par exemple :
Tableau2[[Ville]:[Ville]] reste Tableau2[[Ville]:[Ville]], même en recopiant vers la droite avec la poignée de recopie.
Et donc :
=SOMME.SI.ENS(Tableau2[CA];Tableau2[[Ville]:[Ville]];$A$2)
devient en recopiant vers la droite
=SOMME.SI.ENS(Tableau2[Profit];Tableau2[[Ville]:[Ville]];$A$2)

- Finalement, on peut aussi figer la colonne en nommant la colonne dans le tableau lui-même.
=SOMME.SI.ENS(Tableau2[CA];Ville;$A$2)
devient en recopiant vers la droite
=SOMME.SI.ENS(Tableau2[Profit];Ville;$A$2)

Voilà, je pense que ceci vous sera très utile et que ca éclairera le fonctionnement des tableaux.

Voici une petite synthèse en vidéo :


Meilleurs voeux pour cette nouvelle année !

A bientôt

Gaetan

Comment mettre une plage dans une variable tableau (array)

Excellentes fêtes à tous !
Voici une question d'une de mes étudiantes.
La réponse (cliquez ici pour télécharger le fichier) est très simple, mais comme mon étudiante a cherché très longtemps, je la redonne ici 😉
Il suffit simplement de faire référence au nom du tableau via un Range :

Sub ChargeEnMemoireTableSites()
Dim arrTableSites() As Variant
arrTableSites = Range("TableSites").Value
End Sub

Note : pour visualiser le contenu de la variable tableau dans le code, sélectionner la variable et clic droit, ajouter un espion...

C'est tout, mais c'est très utile, car vous pouvez ensuite parcourir la variable tableau sans avoir à lire cellule par cellule, d'où un gain de temps évident.
Par exemple :
https://www.xlerateur.com/divers/2017/06/12/de-limportance-des-variables-tableaux-en-vba-5963/
Pour approfondir le sujet, je ne peux que vous recommander ma formation sur les variables tableaux :


A bientôt
Gaetan

Copier un fichier vers plusieurs répertoires

Dans le cadre du déploiement d'un fichier pour de multiples utilisateurs, il est parfois pratique de pouvoir copier celui-ci à plusieurs endroits pour que tout le monde ait une copie à jour. Évidemment, ca serait mieux si le fichier était directement multi-utilisateur, mais parfois on n'a pas le choix !

Voici donc un petit fichier qui automatise ce processus : CopierMultiplesFichiers.XLSM

L'essentiel du code est :


Sub CopierFichier()
Dim rgeCell As Range
For Each rgeCell In Range("TableauColEmplacementFinal")
FileCopy Range("CheminCompletFichierSource"), rgeCell.Value
Next
End Sub

On a aussi nommé les plages suivantes :

Et on utilise aussi quelques formules pour recréer le chemin complet de chaque fichier.
DROITE : retourne les caractères à droite de la plage
& : permet de concaténer, c'est-a-dire de combiner deux chaînes de caractères ensemble.

Vous pouvez aussi noter que j'utilise une colonne intermédiaire pour entrer manuellement des données, tout en conservant une formule identique à la colonne C.

En espérant que ce petit fichier puisse vous rendre pleins de services !

A bientôt.

Gaetan