macro pour nommer nombreuses colonnes consécutives

Le
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 !
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
garnote
Le #4752931
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"
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 !


garnote
Le #4752921
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"
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 !


isabelle
Le #4752911
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 !


garnote
Le #4752901
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 !




Vincent_C
Le #4752411
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 !









Vincent_C
Le #4752401
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 !











isabelle
Le #4689281
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

Vincent_C
Le #4689261
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




isabelle
Le #4689221
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






Publicité
Poster une réponse
Anonyme