rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

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

silverkeops, le vendredi 3 novembre 2006 à 10:20:39
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
Répondre à silverkeops  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Lupin.A, le samedi 4 novembre 2006 à 01:25:09
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
Répondre à Lupin.A

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
silverkeops, le lundi 6 novembre 2006 à 10:02:05
Hélas la même erreur est générée dans le If, toujours au niveau du
"ActiveCell.EntireColumn.Hidden = True"...
Répondre à silverkeops

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Kobaya, le lundi 6 novembre 2006 à 18:45:34
bonsoir Kéo, Lupin,

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

A+,
Kobaya.
Répondre à Kobaya

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
silverkeops, le mardi 7 novembre 2006 à 10:03:06
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
Répondre à silverkeops

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 Lupin.A, le samedi 11 novembre 2006 à 19:13:59
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
Répondre à Lupin.A
Logiciels pertinents trouvés dans les téléchargements
Télécharger Media Player Classic 6.4.9.0Media Player Classic - Media Player Classic est un lecteur vidéo reprenant l'apparence des premières version de Windows Media Player. Son apparence...Catégorie: Lecteurs vidéo
Licence: Open Source
Télécharger AVISplit Classic 1.43AVISplit Classic - AVISplit permet de découper et d'assembler des morceaux d'une vidéo au format AVI dans l'ordre souhaité, comme tout bon...Catégorie: Edition vidéo
Licence: Freeware/gratuit
Télécharger Windows Media Player 11Windows Media Player - Le Lecteur Windows Media 11 (WMP) est l'une des fonctionnalités incluses dans Windows Vista et offre des outils pour...Catégorie: Lecteurs vidéo
Licence: Freeware/gratuit
Télécharger Visual Basic Express 2005 2005Visual Basic Express 2005 - Le langage de programmation Visual Basic est historiquement dans les gènes de la société Microsoft. Avec plus de 30.000...Catégorie: Visual Basic
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « [VBA]erreur 1004 propriété hidden class range »