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 Range erreur dans selection.sort


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 41
    Points : 37
    Points
    37
    Par défaut Objet Range erreur dans selection.sort
    Bonjour à tous,
    Je viens sur ce forum à propos d'un programme en vba Access qui me dérange énormément .
    Je vous explique.
    Je suis actuellement en train de développer une application sous access mais, en manipulant également Excel depuis vba Access.
    J'ai un programme qui prend en paramètre un fichier excel et qui donc à partir de données brutes va les mettre en forme pour générer un graphique.
    Le problème c'est que la 1ère fois qd je le lance, le graphique est créé sans problème mais si je le réexécute une seconde fois j'ai un problème avec les lignes en rouge (dans le programme ci joint).
    L'erreur étant:
    Erreur d'exécution 91
    Variable objet ou variable de bloc non définie

    Code vba : 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
    Public Sub graphique(namefileXls As String, compteur As String)
    
    Dim xlApp As Excel.Application
    Dim xlBook As Excel.Workbook
    Dim xlSheet As Excel.Worksheet
    Dim xlSheetDonnées As Excel.Worksheet
    Dim nbSemaines as Integer
    
    ' Initialisation des variables xlApp et xlBook
    Set xlApp = New Excel.Application
    Set xlBook = xlApp.Workbooks.Open(namefileXls)
    
    ' Détermination du nombre lignes de la feuille par défaut
    nbUsedRows = xlBook.Worksheets("Requête Graphe").UsedRange.Rows.Count
    
    ' Ajout de la feuille permettant de filtrer les faisceaux
    Set xlSheet = xlBook.Worksheets.Add
    xlSheet.Name = "Calcul"
    xlBook.Worksheets("Requête Graphe").Activate
    xlBook.Worksheets("Requête Graphe").Range("C2:C" & nbUsedRows).Copy Destination:=xlBook.Worksheets("Calcul").Range("A1")
    
    
    ' ****** Cette portion plante une fois sur deux ?????? *********
    
    xlBook.Worksheets("Requête Graphe").Range("C1").Select
    
    Excel.Selection.Sort key1:=xlBook.Worksheets("Requête Graphe").Cells(1, 3), _
    order1:=xlAscending, header:=xlGuess, ordercustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    
    /*** Partie de traitement des données (non incluse dans ce code)******/
    /*** Dans cette partie j'initialise et complète également la feuille "Données" ***/
    
    ' Création du graphique
    
    Dim MonGraphe As Excel.Chart
    Set MonGraphe = xlBook.Charts.Add
    MonGraphe.chartType = xlXYScatterLines
    
    MonGraphe.SetSourceData xlBook.Worksheets("Données").Range(xlBook.Worksheets("Données").Cells(1, 1), xlBook.Worksheets("Données").Cells(99, CInt(nbSemaines + 1))), xlColumns
    
    With MonGraphe
        .HasTitle = True
        ' Ajout du titre de l'objet graphique
        With .ChartTitle
            .Characters.Text = "Evolution du compteur " & compteur
            .Shadow = True
            .Border.Weight = xlHairline
        End With
        ' Paramétrage de l'axe des ordonnées avec ajout de titre
        With .Axes(xlValue, xlPrimary)
            .HasTitle = True
            .AxisTitle.Characters.Text = compteur
        End With
        ' Paramétrage de l'axe des abscisses avec ajout de la légende
        With .Axes(xlCategory, xlPrimary) '
            .HasTitle = True
            .AxisTitle.Characters.Text = "Semaines"
        End With
    End With
    
    xlBook.Save
    xlApp.Quit
    Set xlBook = Nothing
    Set xlApp = Nothing
    
    End Sub
    Ps: Merci d'avance à ceux qui me consacreront du temps

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 41
    Points : 37
    Points
    37
    Par défaut
    Bonjour,

    Bon je n'ai pas eu de réponse de la part de quiconque mais avec de la persévérance, j'ai fini par résoudre mon problème. J'ai remplacé la ligne du code en rouge (code précédemment posté) par

    Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    xlBook.Worksheets("Requête Graphe").Range("C1").CurrentRegion.Sort key1:=xlBook.Worksheets("Requête Graphe").Cells(1, 3), _
        order1:=xlAscending, header:=xlGuess, ordercustom:=1, MatchCase:=False, _
        Orientation:=xlTopToBottom, DataOption1:=xlSortNormal

    Je ne saurai expliquer le pourquoi mais ma conclusion c'est de faire attention avec l'objet Range qui peut être source d'erreur pour un rien.

    Allez à bientôt.

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Jète un oeil, , la solution que tu as adoptée est parfaite mais pour être plus exhaustive, tu peux déterminer une plage de cellules à trier.
    Juste pour info

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 41
    Points : 37
    Points
    37
    Par défaut
    Merci ouskel'n'or

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

Discussions similaires

  1. Erreur dans SELECT selon l'ordre des champs
    Par senacle dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/03/2008, 13h06
  2. objet RANGE erreur 1004
    Par oscar.cesar dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 26/08/2007, 22h47
  3. erreur de syntaxe dans select
    Par bzh56 dans le forum Requêtes
    Réponses: 3
    Dernier message: 07/07/2006, 14h39
  4. [MySQL] erreur dans le résultat d'un select
    Par abidi_niz dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 15/06/2006, 10h46
  5. (urgent) Erreur dans mon select à cause du NOT IN
    Par MoTUmBo dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 29/11/2005, 21h28

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