[VBA]erreur 1004 propriété hidden class range
silverkeops
Messages postés
4
Statut
Membre
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Je développe des macro en VB pour Excel et je ne parviens pas à résoudre mon problème.
Voici mon code :
Public Sub Afficher_Colonnes()
Range("AK14").Select 'on selectionne la première case de test
Do While ActiveCell.Value <> "FIN_TEST"
If ActiveCell.Value <> txt_colonne Then
ActiveCell.EntireColumn.Hidden = True
Else:
ActiveCell.EntireColumn.Hidden = False
End If
Selection.Offset(0, 1).Select 'on se déplace d'une case vers la droite pour continuer les tests
Loop
End Sub
L'éxécution s'arrete à le ligne "....hidden=true" avec le message d'erreur suivant :
Erreur d'exécution '1004':
Impossible de définir la propriété hidden de la classe range.
Ce qui est vraiment bizarre c'est que l'exécution ne s'arrête pas à la 1ère boucle mais après 30 ou 40 !
Merci d'avance por votre aide.
Kéo
Je développe des macro en VB pour Excel et je ne parviens pas à résoudre mon problème.
Voici mon code :
Public Sub Afficher_Colonnes()
Range("AK14").Select 'on selectionne la première case de test
Do While ActiveCell.Value <> "FIN_TEST"
If ActiveCell.Value <> txt_colonne Then
ActiveCell.EntireColumn.Hidden = True
Else:
ActiveCell.EntireColumn.Hidden = False
End If
Selection.Offset(0, 1).Select 'on se déplace d'une case vers la droite pour continuer les tests
Loop
End Sub
L'éxécution s'arrete à le ligne "....hidden=true" avec le message d'erreur suivant :
Erreur d'exécution '1004':
Impossible de définir la propriété hidden de la classe range.
Ce qui est vraiment bizarre c'est que l'exécution ne s'arrête pas à la 1ère boucle mais après 30 ou 40 !
Merci d'avance por votre aide.
Kéo
4 réponses
-
bonsoir Kéo, Lupin,
n'y aurait-il pas des cellules protégées quelquepart ?
-
Bonjour kobaya,
Aucune cellule n'est protégée ni fusionnée.
J'ai essayé de faire un
Range("...").ColumnWidth = 0
à la place du Range("...").EntireColumn.Hidden = True
et l'erreur est exactement la même : "Erreur 1004 impossible de définir la propriété ColumnWidth de la classe Range...
Autre indice : quand je sélectionne un grand nombre de colonne (40 ou 50) et que je fais clic droit/masquer, il y a l'erreur "impossible de déplacer des objets en dehors de la feuille".
Je précise que cela fonctionne en sélectionnant moins de colonnes (environ 20-25).
Je vois donc une limitation du nombre, mais est-il possible de lever cette limitation et comment ?
Merci pour votre aide
-
-
Bonjour ou Bonsoir,
suggestion :
Sub Afficher_Colonnes() Dim txt_colonne As String Dim Feuille As String, Cellule As String 'Application.ScreenUpdating = False txt_colonne = "Résultat" Feuille = ActiveSheet.Name Cellule = ActiveCell.Address Sheets("Feuil1").Range("AK14").Select While (ActiveCell.Value <> "FIN_TEST") If (ActiveCell.Value <> txt_colonne) Then ActiveCell.EntireColumn.Hidden = True Else ActiveCell.EntireColumn.Hidden = False End If ActiveCell.Offset(0, 1).Select Wend Sheets(Feuille).Range(Cellule).Select 'Application.ScreenUpdating = True End Sub
plus la syntaxe est explicite et moins il y a d'erreur :-)
Lupin -
Hélas la même erreur est générée dans le If, toujours au niveau du
"ActiveCell.EntireColumn.Hidden = True"... -
Bonjour,
Je vous suggère de trapper l'erreur. L'erreur 1004 signifie
qu'il y a débordemant de plage !
Sub Afficher_Colonnes() Dim txt_colonne As String Dim Feuille As String, Cellule As String On Error GoTo Err_Afficher 'Application.ScreenUpdating = False txt_colonne = "Résultat" Feuille = ActiveSheet.Name Cellule = ActiveCell.Address Sheets("Feuil1").Range("AK14").Select While (ActiveCell.Value <> "FIN_TEST") If (ActiveCell.Value <> txt_colonne) Then ActiveCell.EntireColumn.Hidden = True Else ActiveCell.EntireColumn.Hidden = False End If ActiveCell.Offset(0, 1).Select Wend Sheets(Feuille).Range(Cellule).Select 'Application.ScreenUpdating = True Exit_Afficher: Exit Sub Err_Afficher: MsgBox Err.Number & vbCrLf & Err.Description End Sub
Placer un poinr d'arrêt à la ligne :
MsgBox Err.Number & vbCrLf & Err.Description
et valider le contenu des variables !
Lupin