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 :

Méthode select de la classe range a échoué


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de BERRACHED SAID
    Inscrit en
    Janvier 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Janvier 2009
    Messages : 192
    Par défaut Méthode select de la classe range a échoué
    Bonjour le Forum
    Merci Ashireon

    ça marche très bien merci encore pour le coup de main.

    j'apprécier énormément

    je galéré encore sur un autre code pour finaliser le projet c'est toujours cette Select que je n'arrive pas contourner j'ai essayé avec With
    mais rien a faire "la méthode select de la classe range a échoué"

    voila le code originale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Feuil2.Range("F" & Application.Rows.Count).End(xlUp).Select
    voila ce que j'ai modifier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With Worksheets("Imprim")
        .Range("F" & Application.Rows.Count).End(xlUp).Select
        End With
    il régénéré la même erreur dans les deux cas.

    Merci encore et bonne journée.

  2. #2
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour à tou(te)s,

    A mon avis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With Worksheets("Imprim")
        .Range("F" & .Rows.Count).End(xlUp).Select
    End With
    Mais souvent les "Select" sont inutiles
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Membre confirmé Avatar de BERRACHED SAID
    Inscrit en
    Janvier 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Janvier 2009
    Messages : 192
    Par défaut
    Bonjour casefayere et merci

    même avec ta proposition elle renvoi le meme erreur.

    bonne journée

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    A tout hasard, vérifies le nom de ta feuille "Imprim" car je trouve cette erreur bizarre, vérifies également si F contient bien des données, une erreur d'écriture dans le code est toujours possible
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonjour,

    tu n'as pas répondu :

    Citation Envoyé par casefayere Voir le message
    A tout hasard, vérifies le nom de ta feuille "Imprim" car je trouve cette erreur bizarre, vérifies également si F contient bien des données, une erreur d'écriture dans le code est toujours possible

    et à quoi sert ton instruction Select ?

  6. #6
    Invité
    Invité(e)
    Par défaut Bonjour test ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Worksheets("Imprim").Select
     
    With Worksheets("Imprim")
        .Range("F" & .Rows.Count).End(xlUp).Select
    End With

  7. #7
    Membre confirmé Avatar de BERRACHED SAID
    Inscrit en
    Janvier 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Janvier 2009
    Messages : 192
    Par défaut
    Merci beaucoup aux gens qui on bien voulu m'aider

    sachez messieurs que j'ai essayé tous ces bout de codes mais
    l'erreur persiste toujours du fait biensure que je travaille sur une Interface utilisateur et toutes les manipulations se font a partir de cette interface a l'aide de divers Userformes destinées a modifier,supprimer, saisie,imprimer
    les autres feuilles utilisées comme base de données sont inaccessible a l’utilisateur de ce projet il me parait logique quant tu utilise Select a partir de l'interface il renvoi l'erreur mais car il y a toujours un mais comment contourner le problème.

    je vous remis le code qui sert a me faire les totaux et sous totaux avec les reports dans saut de page pour la feuill2 biensure.

    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    Sub soustotal()
    Dim pb As Object
    Dim C As Range
    Dim i As Byte, k As Byte, PBc As Byte
    Dim ReportSTe As Double, ReportSTf As Double
    Dim Last As Integer
    'Application.ScreenUpdating = False
     
    j = 0
    '***Partie 1 : Suppression des sous-totaux et des messages d'alerte
    Set Plage = Feuil2.Range("A2:E" & Range("E" & Application.Rows.Count).End(xlUp).Row)
    With Plage
        Do
            Set C = .Find("Total")
            If Not C Is Nothing Then
                Cells(C.Row, "A").EntireRow.Delete
            End If
        Loop While Not C Is Nothing
    End With
     
    '***Suppression des messages d'alerte spécifique à news
    'With Range("C2:E" & Range("E" & Application.Rows.Count).End(xlUp).Row)
        '.ClearContents
        '.Interior.ColorIndex = xlNone
    'End With
    '*******************************************************
     
     
    'Application.ScreenUpdating = True
     
    '***Partie 3 : Définition auto de la zone d'impression
     
    ActiveSheet.PageSetup.PrintArea = "$A$1:" & Feuil2.Range("E" & Application.Rows.Count).End(xlUp).Address
     
    '***Partie 4 : gestion des sauts de page
     
    PBinit = 1
    Do
        Call GestSautPage
     
     
    '- ------------------ ERREUR ICI
    Feuil2.Range("E" & Application.Rows.Count).End(xlUp).Select
      '----------------------
        PBc = ActiveSheet.HPageBreaks.Count
     
    Loop While PBinit <= PBc
     
    '***Partie 5 : Affichage du total bas de page
    Application.ScreenUpdating = False
    Last = Feuil2.Range("A" & Application.Rows.Count).End(xlUp).Row
    Feuil2.Range(Feuil2.Cells(Last, "A"), Feuil2.Cells(Last + 1, "A")).EntireRow.Insert (xlShiftDown) '**Permet d'étendre la zone d'impression
    Feuil2.Range(Feuil2.Cells(Last + 2, "A"), Feuil2.Cells(Last + 2, "E")).Copy (Feuil2.Cells(Last, "A"))
    Feuil2.Cells(Last + 2, "A").EntireRow.ClearContents
    Feuil2.Cells(Last + 2, "A") = "Total Général"
    Feuil2.Cells(Last + 1, "A") = "Sous-Total"
     
        If j = 0 Then
            Feuil2.Cells(Last + 2, "C") = "=SUM(C2:C" & Last & ")" '+J5"
            Feuil2.Cells(Last + 2, "D") = "=SUM(D2:D" & Last & ")" '+K5"
            Feuil2.Cells(Last + 2, "E") = "=SUM(E2:E" & Last & ")" '+L5"
     
     
            Feuil2.Cells(Last + 1, "C") = "=SUM(C2:C" & Last & ")"
            Feuil2.Cells(Last + 1, "D") = "=SUM(D2:D" & Last & ")"
            Feuil2.Cells(Last + 1, "E") = "=SUM(E2:E" & Last & ")"
     
     
        Else
            Feuil2.Cells(Last + 2, "C") = "=SUM(C" & WorksheetFunction.Max(2, Cpb.Row - 2) & ":C" & Last & ")" '+J5"
            Feuil2.Cells(Last + 2, "D") = "=SUM(D" & WorksheetFunction.Max(2, Cpb.Row - 2) & ":D" & Last & ")" '+K5"
            Feuil2.Cells(Last + 2, "E") = "=SUM(E" & WorksheetFunction.Max(2, Cpb.Row - 2) & ":E" & Last & ")" '+L5"
     
     
            Feuil2.Cells(Last + 1, "C") = "=SUM(C" & WorksheetFunction.Max(2, Cpb.Row - 2) & ":C" & Last & ")"
            Feuil2.Cells(Last + 1, "D") = "=SUM(D" & WorksheetFunction.Max(2, Cpb.Row - 2) & ":D" & Last & ")"
            Feuil2.Cells(Last + 1, "E") = "=SUM(E" & WorksheetFunction.Max(2, Cpb.Row - 2) & ":E" & Last & ")"
     
        End If
     
        '***Suppression spécifique à news
        With Feuil2.Cells(Last + 2, "E")
            .Interior.ColorIndex = xlNone
        End With
        '********************************
     
        With Feuil2.Range(Feuil2.Cells(Last + 1, "A"), Feuil2.Cells(Last + 1, "E"))
            .Interior.ColorIndex = 40
            .Font.Bold = True
        End With
     
        With Feuil2.Range(Feuil2.Cells(Last + 2, "A"), Feuil2.Cells(Last + 2, "E"))
            .Interior.ColorIndex = 45
            .Font.Bold = True
        End With
     
     Application.ScreenUpdating = True
     
    End Sub
    l'erreur est coloré en jaune ligne 43

    Merci a vous tous et j'apprécier votre aide énormément

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour le fil, bonjour Said

    Juste une chose, il est fortement recommandé de ne pas utiliser de "select" avec une interface utilisateur comme tu l'appelles

    Que contient ta Sub GestSautPage ?

    Sinon, essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Feuil2.Range("E" & Feuil2.Rows.Count).End(xlUp).Select
    A+

  9. #9
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    A tout hasard, esssaie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Feuil2.Activate
    Feuil2.Range("F" & Application.Rows.Count).End(xlUp).Select

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 09/07/2014, 16h40
  2. [XL-2010] Méthode Select de la classe Range échoué
    Par Identifiant_Anonyme dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 29/05/2014, 10h06
  3. Réponses: 4
    Dernier message: 26/08/2010, 13h40
  4. Réponses: 13
    Dernier message: 29/06/2007, 18h03
  5. la methode select de la classe range a échoué
    Par shrekos007 dans le forum Macros et VBA Excel
    Réponses: 31
    Dernier message: 26/05/2007, 15h51

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