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 :

Erreur sur la classe Range [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 120
    Points : 63
    Points
    63
    Par défaut Erreur sur la classe Range
    Bonsoir,


    J'ai 2 erreurs concernant les 2 lignes en gras
    1/ La méthode delete de la classe Range a échouée
    2/ Impossible de définir la propriété RowHeight de la classe Range

    Pouvez vous me dépanner Merci d'avance: roll:

    voici mon code
    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
    19
    20
    21
    22
    23
    24
    25
    26
    Sub Modif_architecture_feuille()
    Dim rep$
    Dim i As Integer
    Dim fil As Object, wb As Excel.Workbook, n#
    Dim fso As Object
    
    rep = "I:\EP\DPT\DAC"
    Set fso = CreateObject("Scripting.FileSystemObject")
    n = 0
    For Each fil In fso.GetFolder(rep).Files
        Set wb = Workbooks.Open(fil)
        With Sheets("Objectifs")
        .Unprotect Password:="i1925"
        Rows("9:13").Delete Shift:=xlUp
        Rows("12:16").RowHeight = 168
        For i = 1 To 5
        .OLEObjects("obj" & i).Height = 162
        .OLEObjects("del" & i).Height = 162
        .OLEObjects("ctp" & i).Height = 162
        Next i
        End With
        wb.Close savechanges:=True
        n = n + 1
    Next fil
    
    End Sub

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 24
    Points : 26
    Points
    26
    Par défaut Bonjour
    Pour la ligne delete, essaie :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Range(Cells(9, 1), Cells(13, 1)).EntireRow.Delete
    Pour l'autre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Range(Cells(12, 1), Cells(16, 1)).RowHeight = 168
    selon les avis d'expert, il y aura surement un meilleur code, mais ça fonction chez moi!!!!!

    Bonne continuité

  3. #3
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Bonjour
    L'indentation d'un code vba aide énormément dans la visibilité et la lisibilité des codes d'autant plus il y a des outils qui facilitent cette tâche (dont smart indent)
    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
    For Each Fil In Fso.GetFolder(Rep).Files
        Set Wb = Workbooks.Open(Fil)
        With Wb.Sheets("Objectifs")
            .Unprotect Password:="i1925"
            .Rows("9:13").Delete
            .Rows("12:16").RowHeight = 168
            For i = 1 To 5
                .OLEObjects("obj" & i).Height = 162
                .OLEObjects("del" & i).Height = 162
                .OLEObjects("ctp" & i).Height = 162
            Next i
        End With
        Wb.Close savechanges:=True
        n = n + 1
    Next Fil
    pour Pascal415, les points aussi avant cells pour se reférer à la feuille en question
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Range(.Cells(9, 1), .Cells(13, 1)).EntireRow.Delete

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 120
    Points : 63
    Points
    63
    Par défaut Re
    Merci de vos réponses, mais je suis dubitatif, il me semble avoir essayé avec le . devant Rows mais j'avais aussi un message d'erreur !!!
    mais bon, le principal c'est que ça fonctionne maintenant.

    Je vais faire un effort pour la présentation du code

    Un grand Merci à Pascal415 et mercatog

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 24
    Points : 26
    Points
    26
    Par défaut Oups...
    Merci pour le conseil!
    Je le met dans ma pipe!


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur sur écriture dans Range.Text
    Par Sclarckone dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/08/2011, 08h23
  2. [XL-2003] [VBA] Erreur 1004 - Delete Classe range
    Par mirmoleboss dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 29/07/2011, 16h53
  3. Erreur sur la classe OpenFileDialog
    Par Herwin78800 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 17/07/2009, 17h13
  4. [EXCEL 2003] Echec autofill sur la classe range
    Par buhrne dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/12/2008, 17h03
  5. [VBA-E] Erreur methode select classe range
    Par kdestine dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 17/09/2007, 11h05

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