Run-time error ‘1004’

Fermé
jegosa - 11 sept. 2020 à 14:16
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 - 13 sept. 2020 à 16:10
Bonjour,

j'ai un macro qui a été fait sur excel, quand je l'execute j'ai l'erreur 1004 (Run-time error ‘1004’:
Method ‘Range’ of object’_Worksheet’ failed)

Sub SwitchHorizontalTabs()
Dim SelCol As Long
Dim FirstRow As Long
SelCol = ActiveCell.Column
With Sheet1
.Range("5:84").EntireRow.Hidden = True
FirstRow = 5 + ((SelCol - 5) * 20)
.Range(FirstRow & "." & FirstRow + 19).EntireRow.Hidden = False
End With

End Sub

est ce que vous avez une idée

merci d'avance
A voir également:

2 réponses

yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 1 471
11 sept. 2020 à 15:04
bonjour, merci d'utiliser les balises de code, en choisissant "basic" pour du VBA: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

A quelle ligne de code obtiens-tu cette erreur?
Ton code est clairement incorrect.
que penses-tu obtenir en écrivant
Range("5:84")
?
et
Range(FirstRow & "." & FirstRow + 19)
?
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
12 sept. 2020 à 16:08
Bonjour le fil, bonjour le forum,

Comme Yg_be je pensais que les erreurs dans ton code venaient des mêmes lignes qu'il a pointées mais je me suis rendu compte que c'est l'utilisation du CodeName : Sheet1 qui pose vraiment problème. Ton code modifié :
Sub SwitchHorizontalTabs()
Dim SelCol As Long
Dim FirstRow As Long

SelCol = ActiveCell.Column
With Worksheets("Sheet1")
    .Range("5:84").EntireRow.Hidden = True
    FirstRow = 5 + ((SelCol - 5) * 20)
    If FirstRow < 1 Then FirstRow = 1
    .Range(FirstRow & ":" & FirstRow + 19).EntireRow.Hidden = False
End With
End Sub

0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
Modifié le 12 sept. 2020 à 20:21
Bonjour,

Pourquoi :
.Range("5:84").EntireRow.Hidden = True
????
Au lieu de :
.Rows("5:84").Hidden = True
!!!!

D'autre part ActiveCell est toujours sur ActiveSheet mais pas obligatoirement sur la feuille nommée (que ce soit par son nom ou par son CodeName)
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160 > Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023
13 sept. 2020 à 16:10
Re,

J'avoue que je ne pensais pas que Range("5:18").EntireRow.Hidden soit accepté mais apparemment ça fonctionne aussi, même si pour la clarté du code je lui préfère évidemment Rows("5:84").Hidden...
0