IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Problème avec la propriété CurrentRegion


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 40
    Par défaut Problème avec la propriété CurrentRegion
    Bonsoir,
    J'ai un soucis, en cherchant sur le forum j'ai trouvé un seul sujet similaire mais malheureusement pas de solution
    Je vais essayer d'être clair :
    J'ai une feuille avec une liste. La première ligne comporte les en-têtes et je ne veux pas en tenir compte, vous allez comprendre :
    Dans un module, j'ai créé la fonction suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Public Function plgTraitement() as Range
    Dim Plage As Range
    Dim a As Integer
    Set Plage = ThisWorkBook.Worksheets("Traitement").Range("A1").CurrentRegion
    a = Plage.Rows.Count - 1
    Set plgTraitement = Plage.Resize(RowSize:=a).Offset(RowOffset:=1)
    End Function
    Dans un formulaire, j'ai une listbox. En écrivant le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'Actualiser le RowSource
    ListBox1.RowSource = "Traitement!" & plgTraitement.Address
    Aucun problème.
    J'ajoute et j'insère autant de lignes que je veux dans cette feuille et en """Acutalisant le RowSource""" je n'ai toujours pas le moindre problème.

    Le soucis c'est quand je supprime un ligne ! J'utilise le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkBook.Worksheets("Traitement").Rows(Ligne).EntireRow.Delete
    La ligne est supprimée sans soucis mais au moment """d'actualiser""" c'est la function plgTraitement qui bugge, à la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Plage = ThisWorkBook.Worksheets("Traitement").Range("A1").CurrentRegion
    avec une erreur 1004 "IMPOSSIBLE DE LIRE LA PROPRIETE CURRENTREGION DE LA CLASSE RANGE"

    Je suis un peu pommé j'arrive pas à cerner le problème.
    Si quelqu'un a un idée

    merci

  2. #2
    Membre Expert
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Par défaut
    Bonjour,

    Il reste quoi dans ta feuille au moment de l'erreur ? essai à ce moment la de placer ton curseur en A1 puis actionne les touches CTRL+* , pour selectionner la "currentRegion" en cours et voir si elle correspond à ce que tu désire.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 40
    Par défaut
    salut, en sélectionnant manuellement la currentregion comme tu me dis (ctrl+*), ça me conviens. Je n'arrive vraiement pas à trouver pourquoi à ce moment précis (immédiatement après avoir supprimé un ligne) excel ne veut pas comprendre mon code (alors qu'il fonctionne dans les autres cas).

    Pour contourner le problème j'ai trouvé une solution, qui fonctionne mais qui n'est pas top
    (ça fait un peu "bricolage" et peut ralentir le programme je pense)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Public Function plgTraitement() As Range
    Dim Plage As Range
    Dim a%
     
    Set Plage = feuTraitement.Range("A2")
     
    a = 2
    Do While feuTraitement.Cells(a, 1).Value <> ""
        a = a + 1
    Loop
    a = a - 2
     
    Set plgTraitement = Plage.Resize(RowSize:=a, ColumnSize:=4)
    '---- Test ----
    plgTraitement.Select
    MsgBox "Fais voir ?! " & plgTraitement.Address
    '---- ----
    End Function

Discussions similaires

  1. Problème avec la propriété filter
    Par Morgoth818 dans le forum VBA Access
    Réponses: 2
    Dernier message: 25/08/2007, 21h20
  2. Problème avec la propriété "Filter" de mes DBLookupComboBox
    Par CleeM dans le forum Bases de données
    Réponses: 3
    Dernier message: 29/06/2007, 13h53
  3. problème avec la propriété rendered
    Par gaet_045 dans le forum JSF
    Réponses: 9
    Dernier message: 06/06/2007, 09h28
  4. [VBA_E] problème avec la propriété SelectedItem
    Par jamelie dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 17/04/2007, 06h09
  5. [Delphi 6] Problème avec la propriété Text d'un composant
    Par bionoir dans le forum Composants VCL
    Réponses: 4
    Dernier message: 08/12/2005, 11h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo