Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Indexation variable d'une table

7 réponses
Avatar
d.sundow
Bonjour,

Je souhaiterais via un code pouvoir r=E9index=E9 une base de donn=E9e dont
la taille varie dans le temps.

Manuellement les op=E9rations que j'effectue sont les suivantes :

- positionnement en A1
- ctrl-maj-fl=E8che droite pour s=E9lectionner la largeur du tableau
- ctrl-maj-fl=E8che bas pour s=E9lectionner la hauteur du tableau
- clic dans le carr=E9 d'adresse et l=E0 je nomme ma plage : 'Index1'
- validation

En visualisant le code enregistr=E9 :

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

La plage n'est pas d=E9finie de mani=E8re variable (de la taille de la
s=E9lection) mais comme une zone fixe.

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

Merci d'avance, Sundow

7 réponses

Avatar
isabelle
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


Avatar
JB
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


Avatar
d.sundow
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
Avatar
JB
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


Avatar
isabelle
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

Avatar
d.sundow
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
Avatar
isabelle
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