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 :

objet Worksheet / méthode Range


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2011
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 22
    Par défaut objet Worksheet / méthode Range
    Bonjour

    J'ai un problème de syntaxe et/ou de méthode concernant l'objet worksheet et la propriété range.
    Le code suivant marche lorsque je le copie dans un nouveau fichier.
    Or j'ai beau supprimer tout le reste dans mon ancien fichier et faire un copier/coller j'ai l'erreur suivante :

    "La méthode Range de l'objet Worksheet a échoué"

    à la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    feuille11.Range(Cells(ligne11, colonne11), Cells(ligne22, colonne22)).Select
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    Sub test()
     
    Dim fSh2 As Worksheet
    Set fSh2 = ActiveWorkbook.Sheets("Feuil1")
     
    Call Quadrillage(fSh2, 4, 10, 4, 12)
     
     
    End Sub
     
     
    Sub Quadrillage(feuille11 As Worksheet, ligne11 As Integer, colonne11 As Integer, ligne22 As Integer, colonne22 As Integer)
     
    feuille11.Range(Cells(ligne11, colonne11), Cells(ligne22, colonne22)).Select
     
    'feuille.Activate
     
    'Range(Cells(ligne1, colonne1), Cells(ligne2, colonne2)).Select
     
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .Weight = xlThin
    End With
     
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
     
     
    End Sub
    Je sais qu'il ne faut pas trop utiliser la méthode 'selection'.
    J'envisage d'utilser par la suite qqc du style :
    Merci d'avance !

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Teste ce qui suit :
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
    Sub Quadrillage(feuille11 As Worksheet, _
                    ligne11 As Integer, _
                    colonne11 As Integer, _
                    ligne22 As Integer, _
                    colonne22 As Integer)
     
        Dim Plage As Range
     
         With feuille11
     
        Set Plage = .Range(Cells(ligne11, colonne11), Cells(ligne22, colonne22))
     
        End With
     
        With Plage
     
            .Borders(xlDiagonalDown).LineStyle = xlNone
            .Borders(xlDiagonalUp).LineStyle = xlNone
     
            With .Borders(xlEdgeLeft)
                .LineStyle = xlContinuous
                .ColorIndex = xlAutomatic
                .TintAndShade = 0
                .Weight = xlThin
            End With
     
            With .Borders(xlEdgeTop)
                .LineStyle = xlContinuous
                .ColorIndex = xlAutomatic
                .TintAndShade = 0
                .Weight = xlThin
            End With
     
            With .Borders(xlEdgeBottom)
                .LineStyle = xlContinuous
                .ColorIndex = xlAutomatic
                .TintAndShade = 0
                .Weight = xlThin
            End With
     
            With .Borders(xlEdgeRight)
                .LineStyle = xlContinuous
                .ColorIndex = xlAutomatic
                .TintAndShade = 0
                .Weight = xlThin
            End With
     
            With .Borders(xlInsideVertical)
                .LineStyle = xlContinuous
                .ColorIndex = xlAutomatic
                .TintAndShade = 0
                .Weight = xlThin
            End With
     
            .Borders(xlInsideHorizontal).LineStyle = xlNone
     
        End With
     
    End Sub
    Hervé.

  3. #3
    Membre averti
    Inscrit en
    Mai 2011
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 22
    Par défaut
    Bonjour

    Merci Theze pour ta réponse.

    Par contre j'ai la même erreur à la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Plage = .Range(Cells(ligne11, colonne11), Cells(ligne22, colonne22))
    J'ai Excel 2010. Je ne sais pas si ça peut être une raison.

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Oups,

    Désolé, j'ai oublié les points du With :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        With feuille11
     
           Set Plage = .Range(.Cells(ligne11, colonne11), .Cells(ligne22, colonne22))
     
       End With
    Hervé.

  5. #5
    Membre émérite Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Par défaut
    Comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Plage = .Range(.Cells(ligne11, colonne11), .Cells(ligne22, colonne22))
    Cordialement.

  6. #6
    Membre averti
    Inscrit en
    Mai 2011
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 22
    Par défaut
    Merci à vous 2!

    J'avais essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(.Cells(ligne11, colonne11), .Cells(ligne22, colonne22)).select
    mais je pense comprendre qu'on ne puisse pas faire un select sur un .cells ou . range; d'où la nécessité de passer par un

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

Discussions similaires

  1. La méthode 'range' de l'objet worksheet à échoué
    Par BERRACHED SAID dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 29/05/2013, 08h48
  2. [XL-2007] erreur: "la méthode .Range de l'objet worksheet a échoué"
    Par issoram dans le forum Macros et VBA Excel
    Réponses: 22
    Dernier message: 28/10/2010, 09h08
  3. erreur La méthode 'Range' de l'objet '_Global' a échoué
    Par mahboub dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/11/2006, 20h46
  4. [VBA-E]La méthode 'Range' de l'objet '_Global' a échoué
    Par repié dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 22/02/2006, 16h00
  5. Réponses: 4
    Dernier message: 20/01/2006, 15h53

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