Différence entre Thisworkbook Open et debug
Bonjour,
j'ai un problème dont je ne trouve pas le moindre indice de solution
j'ai dans Thisworkbook d'un classeur le code suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| Private Sub Workbook_Open()
Dim client As Variant, derClient As Integer, infos As Variant
Set client = Sheets("Clients")
Set infos = Sheets("Infos")
With Cells(Rows.Count, "A").End(xlUp).MergeArea: derClient = .Cells(.Cells.Count).Row: End With
client.Range("F2:F" & derClient).Value = client.Range("A2:A" & derClient).Value
infos.Select
infos.Activate
End Sub |
à l'open du fichier la ligne
Code:
client.Range("F2:F" & derClient).Value = client.Range("A2:A" & derClient).Value
ne donne pas de résultat en colonne F
par contre en pas à pas ce même code renseigne la colonne F
J'ai cherché das tous les sens, je ne comprends vraiment pas, cela vient surement d'un effet de bord de qq chose ?
Exécution "Thisworkbook open" vs "liste déroulante"
en fait je pense avoir trouver la cause mais pas encore meilleure la solution :
la colonne F est créée dans "Thisworkbook Open" par des "Range" de la colonne A rendu nécessaire parce que la colonne A est elle même créée par des équivalences avec un catalogue (=cellule du catalogue)
Cependant je constate après l'open que la colonne F n'est pas modifiée lorsque le catalogue a par exemple un ajout d'une ligne
En effet la colonne A contient bien l'ajout de la ligne catalogue, mais la colonne F non, la liste déroulante est donc incomplète
J'en conclu que la macro "Thisworkbook Open" est exécutée par Excel AVANT la mise à jour de équivalences Excel (=cellule du catalogue)
En réfléchissant je me dis qu'une solution est de remplacer la mise à jour de la colonne A aussi par "Thisworkbook Open" au lieu de le laisser faire par Excel par =cellule
Je préférerai laisser faire Excel mais comment ?