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 :

Définition d'un range par Cells(), Cells()


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 211
    Points : 137
    Points
    137
    Par défaut Définition d'un range par Cells(), Cells()
    Bonjour,

    Le débugeur m'arrête à une ligne et je ne comprends vraimant pas pk...

    voici le 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 DessineTache(ByVal LingeFT As Integer, ByVal LingeGantt As Integer, ByRef TabD() As Date) 'Dessiner tache
    Dim RTask As Range
    Dim eurreur As Boolean
    Dim StartDate As Date, FinishDate As Date
    Dim CStart As Integer, CEnd As Integer
    erreur = 0
    '##A faire:
    'recuperer starting date et target date
    If (IsDate(ActiveWorkbook.Sheets("Foreseeable Tasks").Cells(LingeFT, 14).Value) = True) Then
        StartDate = ActiveWorkbook.Sheets("Foreseeable Tasks").Cells(LingeFT, 14).Value
    Else
        erreur = 1
    End If
    If (IsDate(ActiveWorkbook.Sheets("Foreseeable Tasks").Cells(LingeFT, 14).Value) = True) Then
        FinishDate = ActiveWorkbook.Sheets("Foreseeable Tasks").Cells(LingeFT, 4).Value
    Else
        erreur = 1
    End If
    'Si problème pour dessiner tache ne rien dessiner
    If erreur = 0 Then
        CStart = GetCollumsOfDate(StartDate, TabD)
        CEnd = GetCollumsOfDate(FinishDate, TabD)
        Set RTask = ActiveWorkbook.Sheets("Gantt").Range(Cells(LingeGantt, CStart), Cells(LingeGantt, CEnd)) 'setter correctement RTask
        RTask.Merge
    '...
    Le debugeur s'arrête à la ligne rouge et me met le message suivant:
    Erreur d'execution '1004':
    erreur defini par l'application ou par l'objet
    J'ai mis des points d'arrête pour controler que le code d'execute bien avant...
    Juste avant que la ligne qui plante s'exécute on a:
    CStart = 15
    CEnd = 35
    LingeGantt = 14
    Ce qui est exactement les valeurs que je veux étant donner les données d'entrées...

    J'ai alors testé séparament le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub CommandButton5_Click()
    Dim RTask As Range
    Set RTask = ActiveWorkbook.Sheets(1).Range(Cells(14, 15), Cells(14, 35)) 'setter correctement RTask
        RTask.Merge
    End Sub
    Qui marche parfaitement...

    Quelqu'un comprend t il ce qui ce passe.?

  2. #2
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    Bonjour

    je trouve une difference, la 1ere ligne tu utilises le nom de la feuille, le 2eme son index, ce n'est donc pas la meme chose

    as tu testé ta macro avec l'index de la feuille au lieu de son nom ?

    N'aurais tu pas un probleme avec le nom de la feuille à verifier :

    -Majuscules
    -Espaces intempestifs

    Dans ta macro, je ne vois que cette ligne qui fait référence à la feuille Gantt

    Bonne journée

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 211
    Points : 137
    Points
    137
    Par défaut
    J'ai finalement trouvé se qui clochait...

    il fallait simplement remplacer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set RTask = ActiveWorkbook.Sheets("Gantt").Range(Cells(LingeGantt, CStart), Cells(LingeGantt, CEnd)) 'setter correctement RTask
    Par:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set RTask = ActiveWorkbook.Sheets("Gantt").Range(ActiveWorkbook.Sheets("Gantt").Cells(LingeGantt, CStart), ActiveWorkbook.Sheets("Gantt").Cells(LingeGantt, CEnd)) 'setter correctement RTask
    Merci a ceux qui se sont penchés sur le problème

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

Discussions similaires

  1. Signification de Range(Cell).Cells(Row, column)
    Par monsieurouxx dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 01/01/2013, 19h31
  2. Accéder à une donnée dans une cellule fusionnée (par un cells)
    Par biddal dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/08/2011, 09h19
  3. Pourquoi une recette par exemple celle de Coca-cola est-elle indivulgable
    Par bruce-willis dans le forum La taverne du Club : Humour et divers
    Réponses: 68
    Dernier message: 03/03/2011, 00h26
  4. Erreur 1004 sur Range(cells,cells).copy
    Par Sebastien57 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/10/2009, 11h33
  5. Réponses: 6
    Dernier message: 20/01/2008, 14h23

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