Problème Out of Range vba excel [Résolu]

Signaler
Messages postés
8
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
26 juin 2008
-
Messages postés
8
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
26 juin 2008
-
Bonjour,
Depuis ce matin je cherche une solution à mon problème et je n'ai rien trouvé.
J'ai un fichier excel avec des macros.
J'ai une erreur quand je declenche ma macro load qui copie une colonne de mon fichier consolidation vers une colonne de mon fichier load.
Error 9 subscript out of range

Workbooks("H:\Template\consolidation.xls").Worksheets("temp").Range(inter).Value = Workbooks("H:\Template\load.xls").Worksheets("Load").Range(inter).Value

(c'est la ligne ou il y a le problème)

J'ai essayé différent script mais toujours la même erreur.

Merci pour votre aide.

8 réponses

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
salut,

erreur 9 = l'indice n'appartient pas à la sélection.

Vérifie que tes 2 classeurs soient ouverts, et qu'ils possèdent bien les noms de feuilles que tu as mis (Temp pour 1, et Load pour l'autre)

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
9
Salut,

c'est bien d'avoir la ligne qui pose probleme mais il aurai été mieux d'avoir toute les infos concernant la variable inter :
declaration et valeur attribué.

sans ça on pourra pas t'aider

A+
Messages postés
8
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
26 juin 2008

Dim j As Long
Dim inter As String

j = 600     'a la fin de la boucle

inter = "I" & CStr(j)

merci.
Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
9
...

dans une boucle ?

l'erreur apparait des le debut ou durant la boucle ?

tu copies cellule par cellule a l'aide de cette boucle ? waou ! y a d'autre moyen quand meme !

la je vois pas ... donnes nous un peu plus de code

pas besoin  de  CStr(j)  ,   inter = "I" & j   suffit
Messages postés
8
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
26 juin 2008

Désolé j'ai l'habitude de faire de l'ada et faut tout le temps faire des conversions.

J'ai fait une faute dans inter, c'est :

inter = "I2:I" & (j)
Messages postés
8
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
26 juin 2008

sans les ( ) autour de j
Messages postés
8
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
26 juin 2008

Sub Load()


  'All sheets


  Dim i As Integer
  Dim j As Long
  Dim activeSheet2 As String
  Dim lettre As String
  Dim inter As String
  Dim sheet_1 As String
 
  Application.Calculation = xlCalculationManual
  Application.ScreenUpdating = False
  Application.DisplayAlerts = False
 
  activeSheet2 = Application.ActiveWorkbook.activeSheet.Name
  If activeSheet2 = "Total units" Then
    lettre = "I"
    sheet_1 = "Units load"
  Else
    lettre = "J"
    sheet_1 = "ASP load"
  End If
 
  Dim shtemp As Worksheet
  Set shtemp = Sheets.Add(After:=Sheets(Sheets.Count))
  shtemp.Name = "temp"


  j = 2
 
  For i = 13 To 600 Step 1
    Sheets(sheet_1).Select
    inter = "R" & CStr(i) & ":DV" & CStr(i)
    Range(inter).Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("temp").Select
    inter = lettre & CStr(j)
    Range(inter).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=True
    j = j + 109
  Next i
 
  inter = lettre & "2:" & lettre & j
  Workbooks("H:\Template\consolidation.xls").Worksheets("temp").Range(inter).Value = Workbooks("H:\Template\load.xls").Worksheets("Load").Range(inter).Value
 
  Sheets("temp").Delete
 
  Application.DisplayAlerts = True
  Application.ScreenUpdating = True
  Application.Calculation = xlCalculationAutomatic
 
End Sub
Messages postés
8
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
26 juin 2008

merci j'ai trouver mon problème !