Indexation variable d'une table

Le
d.sundow
Bonjour,

Je souhaiterais via un code pouvoir réindexé une base de donnée dont
la taille varie dans le temps.

Manuellement les opérations que j'effectue sont les suivantes :

- positionnement en A1
- ctrl-maj-flèche droite pour sélectionner la largeur du tableau
- ctrl-maj-flèche bas pour sélectionner la hauteur du tableau
- clic dans le carré d'adresse et là je nomme ma plage : 'Index1'
- validation

En visualisant le code enregistré :

Sub Macro2()
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
ActiveWorkbook.Names.Add Name:="Index1", RefersToR1C1:="=Feuil1!
R1C1:R10C6"
End Sub

La plage n'est pas définie de manière variable (de la taille de la
sélection) mais comme une zone fixe.

Quelqu'un pourrait-il m'aider à ce que l'indexation varie en fonction
de la taille du tableau.

Merci d'avance, Sundow
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
isabelle
Le #5235411
bonjour Sundow,

selectionne au menu, Insertion, Nom, Définir,

Nom dans le classeur : Index1

Fait réference à: ÞCALER(Feuil1!$A$1;;;NBVAL(Feuil1!$A:$A);NBVAL(Feuil1!$1:$1))

isabelle

Bonjour,

Je souhaiterais via un code pouvoir réindexé une base de donnée dont
la taille varie dans le temps.

Manuellement les opérations que j'effectue sont les suivantes :

- positionnement en A1
- ctrl-maj-flèche droite pour sélectionner la largeur du tableau
- ctrl-maj-flèche bas pour sélectionner la hauteur du tableau
- clic dans le carré d'adresse et là je nomme ma plage : 'Index1'
- validation

En visualisant le code enregistré :

Sub Macro2()
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
ActiveWorkbook.Names.Add Name:="Index1", RefersToR1C1:="þuil1!
R1C1:R10C6"
End Sub

La plage n'est pas définie de manière variable (de la taille de la
sélection) mais comme une zone fixe.

Quelqu'un pourrait-il m'aider à ce que l'indexation varie en fonction
de la taille du tableau.

Merci d'avance, Sundow


JB
Le #5235401
Bonjour,

Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
ActiveWorkbook.Names.Add Name:="Index1", RefersTo:=Selection

ou

ActiveWorkbook.Names.Add Name:="Index1",
RefersTo:=[A1].CurrentRegion

Il y a auusi les nos de chaps dynamiques avec la fonction Decaler():

http://boisgontierjacques.free.fr/pages_site/ChampDynamique.htm

JB
http://boisgontierjacques.free.fr


On 5 mar, 15:00, wrote:
Bonjour,

Je souhaiterais via un code pouvoir  réindexé une base de donnée d ont
la taille varie dans le temps.

Manuellement les opérations que j'effectue sont les suivantes :

- positionnement en A1
- ctrl-maj-flèche droite pour sélectionner la largeur du tableau
- ctrl-maj-flèche bas pour sélectionner la hauteur du tableau
- clic dans le carré d'adresse et là je nomme ma plage : 'Index1'
- validation

En visualisant le code enregistré :

Sub Macro2()
    Range("A1").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    ActiveWorkbook.Names.Add Name:="Index1", RefersToR1C1:="þu il1!
R1C1:R10C6"
End Sub

La plage n'est pas définie de manière variable (de la taille de la
sélection) mais comme une zone fixe.

Quelqu'un pourrait-il m'aider à ce que l'indexation varie en fonction
de la taille du tableau.

Merci d'avance, Sundow


d.sundow
Le #5235371
Bonjour Isabelle, bonjour JB,

Merci beaucoup pour vos réponses. Je vais choisir la solution une de
JB, car c'est celle que je comprends le mieux.

Pour ce qui est de la fonction Décaler je l'étudierai à tête repos ée.

JB au passage bravo pour ton site il est vraiment trop bien ! - Sundow
JB
Le #5235301
Solution un simplifiée sans sélectionner:

ActiveWorkbook.Names.Add Name:="Index1", RefersTo:= _
Range([A1], [A1].End(xlDown).End(xlToRight)

S'il y a des lignes vides :

ActiveWorkbook.Names.Add Name:="Index1", RefersTo:= _
Range([A1], [A65000].End(xlUp).End(xlToRight))

JB

On 5 mar, 16:01, wrote:
Bonjour Isabelle, bonjour JB,

Merci beaucoup pour vos réponses. Je vais choisir la solution une de
JB, car c'est celle que je comprends le mieux.

Pour ce qui est de la fonction Décaler je l'étudierai à tête repos ée.

JB au passage bravo pour ton site il est vraiment trop bien ! - Sundow


isabelle
Le #5235271
bonjour Sundow,

Bonjour Isabelle, bonjour JB,
Pour ce qui est de la fonction Décaler je l'étudierai à tête reposée.


ÞCALER(Feuil1!$A$1;;;NBVAL(Feuil1!$A:$A);NBVAL(Feuil1!$1:$1))

est = à A1:Xy

c'est à dire décaler à partir de la cellule A1
du nombre de valeur de la colonne A:A ---> variable X
et du nombre de valeur de la ligne 1:1 ---> variable y

isabelle

d.sundow
Le #5235231
Bonjour,

Merci mille fois pour toutes ces précisions. Je les étudierai demain
matin. J'ai passé toute la journée derrière la grille et j'ai le
cerveau complètement... grillé :-))

Très bonne soirée à vous - Sundow
isabelle
Le #5235171
ps/
attention lors de la définition d'un Nom, il faut toujours utiliser des références Absolues

une très bonne soirée à toi également,
isabelle

Bonjour,

Merci mille fois pour toutes ces précisions. Je les étudierai demain
matin. J'ai passé toute la journée derrière la grille et j'ai le
cerveau complètement... grillé :-))

Très bonne soirée à vous - Sundow


Publicité
Poster une réponse
Anonyme