Pb de target à l'ouverture
Bonjour,
J'ai un problème avec cette macro.
Quand j'ouvre le fichier j'ai des messages d'erreur et la macro s'arrête sur la ligne 5.
Cette ligne de code a pour but de définir la position du mot "fin" en A, ce qui permet ensuite de définir une zone dans laquelle s'applique le If en ligne 7 à 10.
J'ai pu identifier différents cas, selon la configuration du fichier à l'ouverture :
Cas 1:
cellule sélectionnée ailleurs qu'en A et colonne A masquée:
Citation:
erreur d'exécution 1004:
Le focus ne peut être déplacé sur le contrôle car celui ci est invisible, non activé, ou d'un type n'acceptant pas le focus.
-->Il n'arrive pas à aller en A si la colonne est masquée?
cas 2 :
colonne A affichée et cellule sélectionnée en A ou pas :
Citation:
erreur d'exécution 1004:
la méthode 'sheet' de l'objet'_global' a échoué
Dans ces 2 cas, c'est toujours sur la ligne 5 que ça plante.
cas3:
cellule sélectionnée en A et colonne A masquée:
pas d'erreur et la macro fait son job !
J'ai également inhibé les lignes 12 à 16, pour tester si le pb pouvait venir de là, mais sans résultat.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'code de la feuille "selection". à chaque clic dans un case :
Dim fin As Range
Set fin = Sheets("selection").Range("A15:A60").Cells.Find(what:="fin") 'trouver dans quelle cellule de A est le mot fin
'MsgBox (fin.row)
If (Target.Column = 4 Or Target.Column = 7) And Target.Row >= 13 And Target.Row <= fin.Row Then 'si clic dans la zone définie (par la position de fin) : ajuster la hauteur
Target.EntireRow.AutoFit
Else: Rows("13:" & fin.Row).RowHeight = 15 'clic ailleurs que dans la zone, toutes les lignes à hauteur 15
End If
'si clic dans la zone définie : pas de saisie semi auto, pour éviter saisie d'un mauvais code
If Target.Column = 2 And Target.Row >= 13 And Target.Row <= fin.Row Then
Application.EnableAutoComplete = False
Else: Application.EnableAutoComplete = True 'clic ailleurs que dans la zone, réactiver saisie auto
End If
End Sub |
Une idée, une piste, voir une solution?
Merci d'avance
Benoit