Insertion de nom dans cellule

alfazoulou

XLDnaute Occasionnel
Bonjours à tous.

voici mon problème:
j'ai affecté des nom à différentes cellules de mon tableau.
Ce tableau doit pouvoir s'imprimer et ne doit pas dépasser la contenance d'une page, sachant que j'ai 64 lignes dans la page.
J'ai nommé par exemple la cellule A55 sous le nom A_55.
Le soucis c'est que si je supprime une ligne du dessus, ma cellule nommée A_55 se retrouve sur la ligne 56 et inversement si j'ajoute des lignes.
Qu'elle est la solution pour que la cellule nommée continue à faire référence à ligne pour laquelle elle a été nommée au départ ?

Merci d'avance.
 

criscris11

XLDnaute Accro
Re : Insertion de nom dans cellule

Bonjour alfazoulou, le forum,
Je ne sais pas si cela répondra à tes attentes mais en général je m'arrange pour nommer mes plages qui me servent de références soit dans des colonnes ou lignes masquées ou encore mieux dans un onglet spécial qui ne sert qu'à çà.
En attendant, bonne réflexion.
 

alfazoulou

XLDnaute Occasionnel
Re : Insertion de nom dans cellule

En fait les lignes 56 à 62 ne doivent pas bouger puisqu’elles constituent mon « bas de page ».
D’autre part les lignes de 1 à 55 se remplissent par l’intermédiaire des données rentrées dan un userform.
Dans cet userform j’ai un textbox par l’intermédiaire duquel on peut insérer du texte sur une ou plusieurs lignes, sachant que dans ce dernier cas il faut que le renvoie à la ligne est été autorisé.
C’est alors qu’apparaît mon problème, c’est que si une ligne qui à l’origine a une hauteur standard de 12,75 se retrouve à mesurer 38.25 parce que le texte quelle contient forme 3 lignes,
Mon bas de page se retrouve hors de la page.
Ma première idée a été de supprimer deux lignes en dessous de la ligne contenant le texte, et c’est là que le second problème apparaît, à savoir que la cellule A55 nommée A_55 qui me permet en remontant de remplir mon tableau se retrouve décalée.
La solution étant peut être finalement de ne pas nommer les cellules mais je pensais qu’il était plus prudent de le faire.
Je ne sais pas si c’est bien clair mais bon…
 

criscris11

XLDnaute Accro
Re : Insertion de nom dans cellule

Re,
Voici un code qui pourrait peut-être te servir (à adapter à ton cas bien sûr)
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row > Range("Debut").Row And Target.Row < Range("Fin2").Row Then
    If Range("Fin2").Row > 170 Then
        ActiveSheet.Range("A175").EntireRow.Delete
    End If
    ActiveWorkbook.Names.Add Name:="Fin2", RefersTo:="='Liste batterie'!$A$170"
End If
If Target.Row > Range("Debut").Row And Target.Row < Range("Fin1").Row Then
    If Range("Fin1").Row < 165 Then
        ActiveSheet.Range("A175").EntireRow.Insert Shift:=xlDown
    End If
    ActiveWorkbook.Names.Add Name:="Fin1", RefersTo:="='Liste batterie'!$A$165"
End If
End Sub
Ce code ajoute une ligne supplémentaire si une ligne est supprimée avant la ligne 165 ou supprime une ligne quand une ligne est ajoutée avant la ligne 165.
Attention toutefois à bien nommer les 2 plages ainsi : Fin1=A165 et Fin2=A170.
Si cela peut t'aider...
Bonne fin de journée.
 

alfazoulou

XLDnaute Occasionnel
Re : Insertion de nom dans cellule

Re,
Voici un code qui pourrait peut-être te servir (à adapter à ton cas bien sûr)
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row > Range("Debut").Row And Target.Row < Range("Fin2").Row Then
    If Range("Fin2").Row > 170 Then
        ActiveSheet.Range("A175").EntireRow.Delete
    End If
    ActiveWorkbook.Names.Add Name:="Fin2", RefersTo:="='Liste batterie'!$A$170"
End If
If Target.Row > Range("Debut").Row And Target.Row < Range("Fin1").Row Then
    If Range("Fin1").Row < 165 Then
        ActiveSheet.Range("A175").EntireRow.Insert Shift:=xlDown
    End If
    ActiveWorkbook.Names.Add Name:="Fin1", RefersTo:="='Liste batterie'!$A$165"
End If
End Sub
Ce code ajoute une ligne supplémentaire si une ligne est supprimée avant la ligne 165 ou supprime une ligne quand une ligne est ajoutée avant la ligne 165.
Attention toutefois à bien nommer les 2 plages ainsi : Fin1=A165 et Fin2=A170.
Si cela peut t'aider...
Bonne fin de journée.

je te remercie je vais essayé.
 

Discussions similaires

Statistiques des forums

Discussions
312 502
Messages
2 089 047
Membres
104 011
dernier inscrit
dfr