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
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
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
en chine ;-))
Bonne journée.
DanielCo a écrit :