Posez votre question Signaler

[VBA]erreur 1004 propriété hidden class range

silverkeops 3Messages postés 3 novembre 2006Date d'inscription - Dernière réponse le 11 nov. 2006 à 19:13
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
Lire la suite 

[VBA]erreur 1004 propriété hidden class range »

5 réponses
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
Hélas la même erreur est générée dans le If, toujours au niveau du
"ActiveCell.EntireColumn.Hidden = True"...
Ajouter un commentaire
Réponse
+0
moins plus
bonsoir Kéo, Lupin,

n'y aurait-il pas des cellules protégées quelquepart ?

silverkeops- 7 nov. 2006 à 10:03
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
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Ce document intitulé « [VBA]erreur 1004 propriété hidden class range » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?