GeoTrouvePas
XLDnaute Impliqué
Bonjour,
Avec l'aide d'Hasco, j'ai réalisé une petite procédure qui me permet d'actualiser une plage nommée en intégrant les lignes qui y ont été rajoutées.
Au niveau du code, ça donne ça :
Lors de mes test, cela semblait fonctionner parfaitement mais, après intégration dans mon fichier, je me retrouve face à un bug que je n'arrive pas à résoudre.
J'utilise cette macro à partir de mon classeur principal en procédant de la sorte :
- L'utilisateur saisi des info dans un userform et le valide
- J'ouvre une classeur annexe dans une nouvelle instance Excel invisible
- Je rajoute les données saisies dans le première ligne située en dessous de la plage nommée "Base_PJ"
- Je lance ma macro pour actualiser cette plage
- J'enregistre mon classeur annexe et je le ferme.
Tout se passe sans problème sauf que, en le réouvrant le fichier annexe, la plage Base_PJ n'est plus "valide".
En faisant Insertion / Nom / Définir, je constate que les coordonnées de la plage sont bizarrement données comme ceci : =PJ!'L2C2':'L4C4'
Les apostrophes n'ont rien à faire là dedans et provoque une erreur.
J'ai beau chercher depuis 24h, impossible de résoudre ce problème.
Auriez vous une idée ?
Avec l'aide d'Hasco, j'ai réalisé une petite procédure qui me permet d'actualiser une plage nommée en intégrant les lignes qui y ont été rajoutées.
Au niveau du code, ça donne ça :
Code:
Sub Actualiser_Plage(Plage_A_Actualiser As Range)
Dim Cptr As Long
Dim NomPlage As Name
With Plage_A_Actualiser
Set NomPlage = .Name
.Cells.Interior.Color = RGB(102, 102, 53)
.Borders.LineStyle = xlNone
Cptr = 1
While .Item(Cptr + 1, 1) <> ""
Cptr = Cptr + 1
Wend
With .Resize(Cptr, .Columns.Count)
NomPlage.RefersTo = "=" & .Parent.Name & "!" & .Address
.Interior.Color = RGB(255, 255, 255)
.Borders.LineStyle = xlNone
.Borders.LineStyle = xlContinuous
.Borders.Color = RGB(0, 0, 0)
.Borders(xlEdgeLeft).Weight = xlThick
.Borders(xlEdgeTop).Weight = xlThick
.Borders(xlEdgeBottom).Weight = xlThick
.Borders(xlEdgeRight).Weight = xlThick
If .Rows.Count > 1 Then .Borders(xlInsideHorizontal).LineStyle = xlNone
If .Columns.Count > 1 Then .Borders(xlInsideVertical).Weight = xlMedium
End With
With .Resize(1, .Columns.Count)
.Borders.LineStyle = xlNone
.Borders.LineStyle = xlContinuous
.Borders.Color = RGB(0, 0, 0)
.Borders(xlEdgeLeft).Weight = xlThick
.Borders(xlEdgeTop).Weight = xlThick
.Borders(xlEdgeBottom).Weight = xlThick
.Borders(xlEdgeRight).Weight = xlThick
If .Rows.Count > 1 Then .Borders(xlInsideHorizontal).LineStyle = xlNone
If .Columns.Count > 1 Then .Borders(xlInsideVertical).Weight = xlMedium
End With
End With
End Sub
Lors de mes test, cela semblait fonctionner parfaitement mais, après intégration dans mon fichier, je me retrouve face à un bug que je n'arrive pas à résoudre.
J'utilise cette macro à partir de mon classeur principal en procédant de la sorte :
- L'utilisateur saisi des info dans un userform et le valide
- J'ouvre une classeur annexe dans une nouvelle instance Excel invisible
- Je rajoute les données saisies dans le première ligne située en dessous de la plage nommée "Base_PJ"
- Je lance ma macro pour actualiser cette plage
- J'enregistre mon classeur annexe et je le ferme.
Tout se passe sans problème sauf que, en le réouvrant le fichier annexe, la plage Base_PJ n'est plus "valide".
En faisant Insertion / Nom / Définir, je constate que les coordonnées de la plage sont bizarrement données comme ceci : =PJ!'L2C2':'L4C4'
Les apostrophes n'ont rien à faire là dedans et provoque une erreur.
J'ai beau chercher depuis 24h, impossible de résoudre ce problème.
Auriez vous une idée ?
Pièces jointes
Dernière édition: