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

macro pour nommer nombreuses colonnes consécutives

9 réponses
Avatar
Vincent_C
bonjour ,

j'aurais besoin d'une macro qui me permette de nommer par le contenu de la
celulle en ligne 2, chacune des colonnes consécutives du fichier ci après
(174 colonnes consécutives)

exemple : la macro nommerait la première colonne L d'après le contenu de la
cellule L2, soit _9761 ; puis elle nommerait la colonne M _9762, etc jusqu'à
la dernière colonne, soit la colonne GC qui selon la même logique serait
nommée TOTAL24


http://cjoint.com/?jgb5CqQy0U

merci d'avance !

9 réponses

Avatar
garnote
Salut Vincent,

Un petit exemple pour voir si ça peut te convenir :

Sub Nommer_Colonne_Selon_Ligne_Deux()
Set F = Worksheets("Feuil1")
For i = 12 To 15
nom = "_" & Cells(2, i)
Set ici = F.Columns(i)
ActiveWorkbook.Names.Add Name:=nom, RefersTo:=ici
Next i
End Sub

Colonne L : 12
Colonne GC : 185

Serge



"Vincent_C" a écrit dans le message de news:

bonjour ,

j'aurais besoin d'une macro qui me permette de nommer par le contenu de la
celulle en ligne 2, chacune des colonnes consécutives du fichier ci après
(174 colonnes consécutives)

exemple : la macro nommerait la première colonne L d'après le contenu de la
cellule L2, soit _9761 ; puis elle nommerait la colonne M _9762, etc jusqu'à
la dernière colonne, soit la colonne GC qui selon la même logique serait
nommée TOTAL24


http://cjoint.com/?jgb5CqQy0U

merci d'avance !


Avatar
garnote
Salut Vincent,

Sub Nommer_Colonnes_Selon_Ligne_Deux()
Set F = Worksheets("Feuil1")
For i = 12 To 185
If Left(Cells(2, i), 1) = "T" Then
nom = Cells(2, i)
Else
nom = "_" & Cells(2, i)
End If
Set ici = F.Columns(i)
ActiveWorkbook.Names.Add Name:=nom, RefersTo:=ici
Next i
End Sub

Et ceci qui peut toujours servir :
Sub Efface_Tous_Les_Noms()
For Each n In ActiveWorkbook.Names
n.Delete
Next n
End Sub

Serge





"Vincent_C" a écrit dans le message de news:

bonjour ,

j'aurais besoin d'une macro qui me permette de nommer par le contenu de la
celulle en ligne 2, chacune des colonnes consécutives du fichier ci après
(174 colonnes consécutives)

exemple : la macro nommerait la première colonne L d'après le contenu de la
cellule L2, soit _9761 ; puis elle nommerait la colonne M _9762, etc jusqu'à
la dernière colonne, soit la colonne GC qui selon la même logique serait
nommée TOTAL24


http://cjoint.com/?jgb5CqQy0U

merci d'avance !


Avatar
isabelle
bonjour Vincent,

Sub Macro1()
Rows(1).Cut
Rows(65536).Insert Shift:=xlDown
Columns("L:GC").CreateNames Top:=True, Left:úlse, Bottom:úlse, Right:úlse
Rows(65535).Cut
Rows(1).Insert Shift:=xlDown
End Sub

isabelle

bonjour ,

j'aurais besoin d'une macro qui me permette de nommer par le contenu de la
celulle en ligne 2, chacune des colonnes consécutives du fichier ci après
(174 colonnes consécutives)

exemple : la macro nommerait la première colonne L d'après le contenu de la
cellule L2, soit _9761 ; puis elle nommerait la colonne M _9762, etc jusqu'à
la dernière colonne, soit la colonne GC qui selon la même logique serait
nommée TOTAL24


http://cjoint.com/?jgb5CqQy0U

merci d'avance !


Avatar
garnote
Bonsoir Isabelle,

Oh la la, quelle élégante macro !

Bonne fin de soirée

Serge


"isabelle" a écrit dans le message de news: %
bonjour Vincent,

Sub Macro1()
Rows(1).Cut
Rows(65536).Insert Shift:=xlDown
Columns("L:GC").CreateNames Top:=True, Left:úlse, Bottom:úlse, Right:úlse
Rows(65535).Cut
Rows(1).Insert Shift:=xlDown
End Sub

isabelle

bonjour ,

j'aurais besoin d'une macro qui me permette de nommer par le contenu de la celulle en ligne 2, chacune des colonnes consécutives
du fichier ci après (174 colonnes consécutives)

exemple : la macro nommerait la première colonne L d'après le contenu de la cellule L2, soit _9761 ; puis elle nommerait la
colonne M _9762, etc jusqu'à la dernière colonne, soit la colonne GC qui selon la même logique serait nommée TOTAL24


http://cjoint.com/?jgb5CqQy0U

merci d'avance !




Avatar
Vincent_C
Bonjour à tous,

Effectivement, elle est splendide ! Merci beaucoup et excellente journée !

Bien cordialement,

Vincent_C


Bonsoir Isabelle,

Oh la la, quelle élégante macro !

Bonne fin de soirée

Serge


"isabelle" a écrit dans le message de news: %
bonjour Vincent,

Sub Macro1()
Rows(1).Cut
Rows(65536).Insert Shift:=xlDown
Columns("L:GC").CreateNames Top:=True, Left:úlse, Bottom:úlse, Right:úlse
Rows(65535).Cut
Rows(1).Insert Shift:=xlDown
End Sub

isabelle

bonjour ,

j'aurais besoin d'une macro qui me permette de nommer par le contenu de la celulle en ligne 2, chacune des colonnes consécutives
du fichier ci après (174 colonnes consécutives)

exemple : la macro nommerait la première colonne L d'après le contenu de la cellule L2, soit _9761 ; puis elle nommerait la
colonne M _9762, etc jusqu'à la dernière colonne, soit la colonne GC qui selon la même logique serait nommée TOTAL24


http://cjoint.com/?jgb5CqQy0U

merci d'avance !









Avatar
Vincent_C
bonjour,

le fait de décaler la 1ère ligne a pour conséquence que les colonnes nommées
ne sont pas complètes : ainsi le nom _97112 par exemple fait référence à
þuil1!$DS$3:$DS$65536 au lieu de þuil1!$DS:$DS

y a t il SVP un moyen de corriger toutes les références des noms créés ?

d'avance merci à vous

bien cordialement,

Vincent_C




Bonjour à tous,

Effectivement, elle est splendide ! Merci beaucoup et excellente journée !

Bien cordialement,

Vincent_C


Bonsoir Isabelle,

Oh la la, quelle élégante macro !

Bonne fin de soirée

Serge


"isabelle" a écrit dans le message de news: %
bonjour Vincent,

Sub Macro1()
Rows(1).Cut
Rows(65536).Insert Shift:=xlDown
Columns("L:GC").CreateNames Top:=True, Left:úlse, Bottom:úlse, Right:úlse
Rows(65535).Cut
Rows(1).Insert Shift:=xlDown
End Sub

isabelle

bonjour ,

j'aurais besoin d'une macro qui me permette de nommer par le contenu de la celulle en ligne 2, chacune des colonnes consécutives
du fichier ci après (174 colonnes consécutives)

exemple : la macro nommerait la première colonne L d'après le contenu de la cellule L2, soit _9761 ; puis elle nommerait la
colonne M _9762, etc jusqu'à la dernière colonne, soit la colonne GC qui selon la même logique serait nommée TOTAL24


http://cjoint.com/?jgb5CqQy0U

merci d'avance !











Avatar
isabelle
bonjour Vincent,

le fait de décaler la 1ère ligne a pour conséquence que les colonnes nommées
ne sont pas complètes : ainsi le nom _97112 par exemple fait référence à
þuil1!$DS$3:$DS$65536 au lieu de þuil1!$DS:$DS

y a t il SVP un moyen de corriger toutes les références des noms créés ?


oui c'est possible, avec la solution que serge (garnotte) t'as donné,
_____________________________________________________________________
Sub Nommer_Colonnes_Selon_Ligne_Deux()
Set F = Worksheets("Feuil1")
For i = 12 To 185
If Left(Cells(2, i), 1) = "T" Then
nom = Cells(2, i)
Else
nom = "_" & Cells(2, i)
End If
Set ici = F.Columns(i)
ActiveWorkbook.Names.Add Name:=nom, RefersTo:=ici
Next i
End Sub ' Serge

Et ceci qui peut toujours servir :

Sub Efface_Tous_Les_Noms()
For Each n In ActiveWorkbook.Names
n.Delete
Next n
End Sub 'Serge
____________________________________________________________________________
isabelle

Avatar
Vincent_C
Merci beaucoup Isabelle et merci aussi à Serge !

très bonne journée

bien cordialement,

Vincent_C


bonjour Vincent,

le fait de décaler la 1ère ligne a pour conséquence que les colonnes nommées
ne sont pas complètes : ainsi le nom _97112 par exemple fait référence à
þuil1!$DS$3:$DS$65536 au lieu de þuil1!$DS:$DS

y a t il SVP un moyen de corriger toutes les références des noms créés ?


oui c'est possible, avec la solution que serge (garnotte) t'as donné,
_____________________________________________________________________
Sub Nommer_Colonnes_Selon_Ligne_Deux()
Set F = Worksheets("Feuil1")
For i = 12 To 185
If Left(Cells(2, i), 1) = "T" Then
nom = Cells(2, i)
Else
nom = "_" & Cells(2, i)
End If
Set ici = F.Columns(i)
ActiveWorkbook.Names.Add Name:=nom, RefersTo:=ici
Next i
End Sub ' Serge

Et ceci qui peut toujours servir :

Sub Efface_Tous_Les_Noms()
For Each n In ActiveWorkbook.Names
n.Delete
Next n
End Sub 'Serge
____________________________________________________________________________
isabelle




Avatar
isabelle
bonjour Vincent,

attention tout de même car avec des noms représentant une colonne entière tu ne ne pourras pas utilisé
les formulles matriciel, sommeprod.

isabelle


Merci beaucoup Isabelle et merci aussi à Serge !

très bonne journée

bien cordialement,

Vincent_C



bonjour Vincent,


le fait de décaler la 1ère ligne a pour conséquence que les colonnes nommées
ne sont pas complètes : ainsi le nom _97112 par exemple fait référence à
þuil1!$DS$3:$DS$65536 au lieu de þuil1!$DS:$DS

y a t il SVP un moyen de corriger toutes les références des noms créés ?


oui c'est possible, avec la solution que serge (garnotte) t'as donné,
_____________________________________________________________________
Sub Nommer_Colonnes_Selon_Ligne_Deux()
Set F = Worksheets("Feuil1")
For i = 12 To 185
If Left(Cells(2, i), 1) = "T" Then
nom = Cells(2, i)
Else
nom = "_" & Cells(2, i)
End If
Set ici = F.Columns(i)
ActiveWorkbook.Names.Add Name:=nom, RefersTo:=ici
Next i
End Sub ' Serge

Et ceci qui peut toujours servir :

Sub Efface_Tous_Les_Noms()
For Each n In ActiveWorkbook.Names
n.Delete
Next n
End Sub 'Serge
____________________________________________________________________________
isabelle