Limitation nb caractères par code

Le
danielos
Bonjour à toutes et à tous,

Je voudrais nommer des cellules mais il faut que les noms soient limité=
s
à 20 caractères à cause de la contrainte des "signets" (FormFields.=
Name)
dans Word.
Le code pour nommer les cellules fonctionne mais pas la limitation à 20=

caractères

Où fais-je une erreur ?

Merci d'avance
Daniel


Sub Nommer_cellules()
'
'
Dim n As Name
Dim PremiereLigne As Byte
Dim DerniereLigne As Integer
Dim index As Integer
Dim lg As Integer
lg = Workbooks("toto.xls").Sheets(1).Range("A65536").End(xlUp)(1).Row

'Supprimer tous les noms existant éventuellement dans le classeur
For Each n In Names
n.Delete
Next n

'Sélectionner la feuille sur laquelle on veut appliquer les noms
Sheets(1).Select

'Préciser la ligne de début et de fin
PremiereLigne = 2
DerniereLigne = lg

For index = PremiereLigne To DerniereLigne
If Cells(index, 4) <> "" Then

' Colonne NOM
Range("D" & index).Select
ActiveWorkbook.Names.Add Name:=Range("D1").Value & Range("C" &=

_ index).Value & Range("A" & index).Value, RefersToR1C1:=ActiveCell

If Len(ActiveCell.Name) > 20 Then
ActiveCell.Name.Value = Left(ActiveCell.Name.Value, 20)
End If

End If

Next

End Sub
Questions / Réponses high-tech
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
DanielCo
Le #26004452
Bonjour,
ActiveWorkbook.Names.Add Name:=Range("D1").Value & Range("C" & _
Index).Value & Range("A" & Index).Value, _
RefersToR1C1:=Left(activeell, 20)
Mais le nom n'est pas représenté par "referstor1c1" mais par "Name";
n'est-ce pas lui qu'il faut limiter à 20 caractères ?
Daniel


Bonjour à toutes et à tous,

Je voudrais nommer des cellules mais il faut que les noms soient limités à 20
caractères à cause de la contrainte des "signets" (FormFields.Name) dans
Word.
Le code pour nommer les cellules fonctionne mais pas la limitation à 20
caractères...

Où fais-je une erreur ?

Merci d'avance
Daniel


Sub Nommer_cellules()
'
'
Dim n As Name
Dim PremiereLigne As Byte
Dim DerniereLigne As Integer
Dim index As Integer
Dim lg As Integer
lg = Workbooks("toto.xls").Sheets(1).Range("A65536").End(xlUp)(1).Row

'Supprimer tous les noms existant éventuellement dans le classeur
For Each n In Names
n.Delete
Next n

'Sélectionner la feuille sur laquelle on veut appliquer les noms
Sheets(1).Select

'Préciser la ligne de début et de fin
PremiereLigne = 2
DerniereLigne = lg

For index = PremiereLigne To DerniereLigne
If Cells(index, 4) <> "" Then

' Colonne NOM
Range("D" & index).Select
ActiveWorkbook.Names.Add Name:=Range("D1").Value & Range("C" & _
index).Value & Range("A" & index).Value, RefersToR1C1:¬tiveCell

If Len(ActiveCell.Name) > 20 Then
ActiveCell.Name.Value = Left(ActiveCell.Name.Value, 20)
End If

End If

Next

End Sub
danielos
Le #26004602
Merci pour la piste, je vais creuser par là... (demain je devrais êtr e
en chine ;-))
Bonne journée.

DanielCo a écrit :
Bonjour,
ActiveWorkbook.Names.Add Name:=Range("D1").Value & Range("C" & _
Index).Value & Range("A" & Index).Value, _
RefersToR1C1:=Left(activeell, 20)
Mais le nom n'est pas représenté par "referstor1c1" mais par "Name" ;
n'est-ce pas lui qu'il faut limiter à 20 caractères ?
Daniel


Bonjour à toutes et à tous,

Je voudrais nommer des cellules mais il faut que les noms soient
limités à 20 caractères à cause de la contrainte des "signets"
(FormFields.Name) dans Word.
Le code pour nommer les cellules fonctionne mais pas la limitation à
20 caractères...

Où fais-je une erreur ?

Merci d'avance
Daniel


Sub Nommer_cellules()
'
'
Dim n As Name
Dim PremiereLigne As Byte
Dim DerniereLigne As Integer
Dim index As Integer
Dim lg As Integer
lg = Workbooks("toto.xls").Sheets(1).Range("A65536").End(xlUp)(1).Ro w

'Supprimer tous les noms existant éventuellement dans le classeur
For Each n In Names
n.Delete
Next n

'Sélectionner la feuille sur laquelle on veut appliquer les noms
Sheets(1).Select

'Préciser la ligne de début et de fin
PremiereLigne = 2
DerniereLigne = lg

For index = PremiereLigne To DerniereLigne
If Cells(index, 4) <> "" Then

' Colonne NOM
Range("D" & index).Select
ActiveWorkbook.Names.Add Name:=Range("D1").Value & Range("C "
& _ index).Value & Range("A" & index).Value, RefersToR1C1:¬tiveCel l

If Len(ActiveCell.Name) > 20 Then
ActiveCell.Name.Value = Left(ActiveCell.Name.Value, 20)
End If

End If

Next

End Sub
Publicité
Poster une réponse
Anonyme