[VBA/Excel] problème de compilation

Résolu
Bonjour et merci par avance à tous ceux qui essayront de m'aider.
voici mon problème:

j'ai un tableau de grande taille (tableau 1) que je souhaite résumer dans une autre feuille sous forme d'un tableau de 18 lignes (tableau 2).
le tableau 1 a une taille variable.
nb_lines est le nombre de lignes du tableu 1
MyStep = nb_lines/18 car 18 = (taille tableau 2)
ce que je veux faire c'est simplement de copier 1 ligne du tableau 1 toutes les MyStep lignes et coller cela dans le tableau 2.

voici le code :

------------------------------------------------------------------------------------------------------
Sub GrowthSummary()

Dim MyStep As Double, TargetLine As Double
Dim MyDate As String, Week As String, Weight As String
Dim DateSumm As String, WeekSumm As String, WeightSumm As String

With Sheets("DATA_graph")

MyStep = .Cells(12, 10)
TargetLine = 7

For i = 6 To 24 Step 1

TargetLine = TargetLine + MyStep
MyDate = "B" & Target_line
Week = "C" & Target_line
Weight = "F" & Target_line
DateSumm = "I" & i
WeekSumm = "J" & i
WeightSumm = "K" & i

Sheets("DATA_graph").Select
Range(MyDate).Select
Selection.Copy
Sheets("GROWTH").Select
Range(DateSumm).Select
ActiveSheet.Paste

Sheets("DATA_graph").Select
Range(Week).Select
Selection.Copy
Sheets("GROWTH").Select
Range(WeekSumm).Select
ActiveSheet.Paste

Sheets("DATA_graph").Select
Range(Weight).Select
Selection.Copy
Sheets("GROWTH").Select
Range(WeightSumm).Select
ActiveSheet.Paste
Next i

End With

End Sub
---------------------------------------------------------------------------------------------------

la compilation m'indique l'erreur suivante sur la ligne soulignée:
"la methode 'range de l'objet '_global' a échoué"

que dois-je faire ??

merci d'avance,
lalilu
Configuration: Windows XP
Internet Explorer 6.0

5 réponses

  1. re :

    Pour le mode pas à pas, place to curseur dans le code de la routine !

    // Menu VBE / Débogage / Pas a pas détaillé

    Une fois en mode pas à pas

    Quand tu passe la souris au dessus d'une variable, une infobulle
    apparaît avec le contenu de la variable, si celle-ci a été affecté ou instancié bien sur.

    Dans le menu de l'éditeur, avec un clic droit sur les bords du menu,
    tu peux faire afficher la barre d'outils de débogage, tu y trouveras
    un bouton pour faire avancer le curseur une instruction à la fois

    Pas à pas détaillé & Pas à pas principal
    Sub Routine1()
        Call Routine2
    End Sub
    
    Sub Routine2()
        MsgBox "Lupin"
    End Sub
    


    En plaçant ton surceur dans la routine 1, le mode pas à pas principal
    vas exécuter la routine 2 sans la parcourrir, le mode pas à pas détaillé
    va lui la parcourir.

    Lupin
    1. Merci d'avoir répondu.

      je viens de résoudre mon problème en remplaçant:
      MyDate = "B" & Target_line
      Range(MyDate).Select

      par:
      Range("B" & TargetLine).Select

      et ça marche ...
      celà dit, je ne sais pas faire le mode pas à pas (je débute). j'ai essayé en cliquant sur débuggage, pas à pas détaillé mais ça a fait comme une compilation ordinaire. comment peut on voir les valeurs que prennent une variable ?

      en tous cas merci lupin.
      et au fait, j'ai changé double en long :)
      1. Bonjour,

        Il faut mettre un point d'arrêt sur le code à l'endroit où l'on veut faire la vérification (par exemple en début d'une Sub). Ensuite il faut faire F8 pour passer le code ligne par ligne. Pour voir la valeur d'une variable, il suffit de passer la souris dessus, une bulle indique la valeur.

        Bonne continuation

        ;o)
    2. Bonjour,

      Quelques observations :

      Je ne suis pas convaincu que vous utilisé la méthode [ With ] de la bonne façon.

      Les variables [ Dim MyStep As Double, TargetLine As Double ] n'ont pas
      à être de type [ Double ], vous pourrez constater dans l'aide de Excel
      que les propriétés [ Row ] et [ Column ] sont de type [ Long ].

      Ceci dit, assurez-vous en mode pas à pas du contenu de la variable : [ MyDate ]

      Option Explicit
      
      Sub GrowthSummary()
      
          Dim MyStep As Long, TargetLine As Long, i as Long
          Dim MyDate As String, Week As String, Weight As String
          Dim DateSumm As String, WeekSumm As String, WeightSumm As String
          
          MyStep = Sheets("DATA_graph").Cells(12, 10).Value
          TargetLine = 7
          
          For i = 6 To 24 Step 1
              TargetLine = TargetLine + MyStep
              MyDate = "B" & Target_line
              Week = "C" & Target_line
              Weight = "F" & Target_line
              DateSumm = "I" & i
              WeekSumm = "J" & i
              WeightSumm = "K" & i
              
              Sheets("DATA_graph").Select
              Range(MyDate).Select
              Selection.Copy
              Sheets("GROWTH").Select
              Range(DateSumm).Select
              ActiveSheet.Paste
              Application.CutCopyMode = False
              
              Sheets("DATA_graph").Select
              Range(Week).Select
              Selection.Copy
              Sheets("GROWTH").Select
              Range(WeekSumm).Select
              ActiveSheet.Paste
              Application.CutCopyMode = False
              
              Sheets("DATA_graph").Select
              Range(Weight).Select
              Selection.Copy
              Sheets("GROWTH").Select
              Range(WeightSumm).Select
              ActiveSheet.Paste
              Application.CutCopyMode = False
          Next i
      
      End Sub
      '
      

      Lupin