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

Limitation nb caractères par code

2 réponses
Avatar
danielos
Bonjour =E0 toutes et =E0 tous,

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

O=F9 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 =3D Workbooks("toto.xls").Sheets(1).Range("A65536").End(xlUp)(1).Row

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

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

'Pr=E9ciser la ligne de d=E9but et de fin
PremiereLigne =3D 2
DerniereLigne =3D lg

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

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

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

End If

Next

End Sub

2 réponses

Avatar
DanielCo
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
Avatar
danielos
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