Erreur sur l'objet Range (Bis)

Le
Changuy
Bonsoir a tous,

Cette macro (voir + bas) ne fonctionne pas ! qui peut me dire pourquoi?
Errreur 1004 : Erreur définie par l'application ou l'objet

C'est cette ligne qui pose problème:
Sheets("DONNEES").Range(Cells(LigDep, 2 + j), Cells(LigDep + 7, 2 +
j)).Copy
Mai la macro fonctionne si je la remplace par:
Sheets("DONNEES").Select
Range(Cells(LigDep, 2 + j), Cells(LigDep + 7, 2 + j)).select
Selection.Copy

Merci pour votre aide
JC

Ci-jointe la macro complète:

Sub COPIE2()
Dim Qté, NbSlide, Ligne, LigDep, Trav, i, j, L As Integer

Sheets("LISTE").Range("A1").Select
NbSlide = Range("B1").Value

For Ligne = 0 To (NbSlide - 1)

'Copie de la quantité dans Qté et regarde Nb de Vtx définit LigDep
Qté = Range("D5").Offset(Ligne, 0).Value
If Range("B5").Offset(Ligne, 0).Value = 2 Then LigDep = 7
If Range("B5").Offset(Ligne, 0).Value = 3 Then LigDep = 19
If Range("B5").Offset(Ligne, 0).Value = 4 Then LigDep = 31

' Test si Slide avec Traverse
If Range("C5").Offset(Ligne, 0).Value = "T" Then Trav = 6 Else Trav = 5

'Copie des dimensions du slide
Range(Cells(5 + Ligne, 5), Cells(5 + Ligne, 6)).Copy
Sheets("DONNEES").Range("B2:C2").PasteSpecial Paste:=xlValues,
Operation:=xlNone, SkipBlanks:úlse, Transpose:úlse


' Copie des longueurs de pièce à débiter
For j = 0 To Trav
For i = 1 To Qté
L = Sheets("LISTE").Range("H1").Offset(0, j).Value
Application.CutCopyMode = False
-> Sheets("DONNEES").Range(Cells(LigDep, 2 + j), Cells(LigDep +
7, 2 + j)).Copy '!!!!!!!! Bug sur cette ligne !!!!
Sheets("LISTE").Range("H5").Offset(L, j).PasteSpecial
Paste:=xlValues, Operation:=xlNone, SkipBlanks:úlse, Transpose:úlse
Application.CutCopyMode = False
Next
Next

Next

Sheets("LISTE").Range("A1").Select

End Sub
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel
Le #4869981
Bonsoir.
Le mieux serait de mettre ton classeur sur www.cjoint.com en effaçant les
données confidentielles et de poster l'adresse générée.
Cordialement.
Daniel
"Changuy"
Bonsoir a tous,

Cette macro (voir + bas) ne fonctionne pas ! qui peut me dire pourquoi?
Errreur 1004 : Erreur définie par l'application ou l'objet

C'est cette ligne qui pose problème:
Sheets("DONNEES").Range(Cells(LigDep, 2 + j), Cells(LigDep + 7, 2 +
j)).Copy
Mai la macro fonctionne si je la remplace par:
Sheets("DONNEES").Select
Range(Cells(LigDep, 2 + j), Cells(LigDep + 7, 2 + j)).select
Selection.Copy

Merci pour votre aide
JC

Ci-jointe la macro complète:
---------------------------------------------------------------------
Sub COPIE2()
Dim Qté, NbSlide, Ligne, LigDep, Trav, i, j, L As Integer

Sheets("LISTE").Range("A1").Select
NbSlide = Range("B1").Value

For Ligne = 0 To (NbSlide - 1)

'Copie de la quantité dans Qté et regarde Nb de Vtx définit LigDep
Qté = Range("D5").Offset(Ligne, 0).Value
If Range("B5").Offset(Ligne, 0).Value = 2 Then LigDep = 7
If Range("B5").Offset(Ligne, 0).Value = 3 Then LigDep = 19
If Range("B5").Offset(Ligne, 0).Value = 4 Then LigDep = 31

' Test si Slide avec Traverse
If Range("C5").Offset(Ligne, 0).Value = "T" Then Trav = 6 Else Trav = 5

'Copie des dimensions du slide
Range(Cells(5 + Ligne, 5), Cells(5 + Ligne, 6)).Copy
Sheets("DONNEES").Range("B2:C2").PasteSpecial Paste:=xlValues,
Operation:=xlNone, SkipBlanks:úlse, Transpose:úlse


' Copie des longueurs de pièce à débiter
For j = 0 To Trav
For i = 1 To Qté
L = Sheets("LISTE").Range("H1").Offset(0, j).Value
Application.CutCopyMode = False
-> Sheets("DONNEES").Range(Cells(LigDep, 2 + j), Cells(LigDep +
7, 2 + j)).Copy '!!!!!!!! Bug sur cette ligne !!!!
Sheets("LISTE").Range("H5").Offset(L, j).PasteSpecial
Paste:=xlValues, Operation:=xlNone, SkipBlanks:úlse, Transpose:úlse
Application.CutCopyMode = False
Next
Next

Next

Sheets("LISTE").Range("A1").Select

End Sub



Youky
Le #4869951
-> Sheets("DONNEES").Range(Cells(LigDep, 2 + j), Cells(LigDep +
7, 2 + j)).Copy '!!!!!!!! Bug sur cette ligne !!!!
Attention de mettre tout sur la même ligne
ou en bout ligne faire 1 espace et trait bas comme ceci
Sheets("DONNEES").Range(Cells(LigDep, 2 + j), Cells(LigDep + _
7, 2 + j)).Copy
la ligne ne bug pas si LigDep>0
Youky

"Changuy"
Bonsoir a tous,

Cette macro (voir + bas) ne fonctionne pas ! qui peut me dire pourquoi?
Errreur 1004 : Erreur définie par l'application ou l'objet

C'est cette ligne qui pose problème:
Sheets("DONNEES").Range(Cells(LigDep, 2 + j), Cells(LigDep + 7, 2 +
j)).Copy
Mai la macro fonctionne si je la remplace par:
Sheets("DONNEES").Select
Range(Cells(LigDep, 2 + j), Cells(LigDep + 7, 2 + j)).select
Selection.Copy

Merci pour votre aide
JC

Ci-jointe la macro complète:
---------------------------------------------------------------------
Sub COPIE2()
Dim Qté, NbSlide, Ligne, LigDep, Trav, i, j, L As Integer

Sheets("LISTE").Range("A1").Select
NbSlide = Range("B1").Value

For Ligne = 0 To (NbSlide - 1)

'Copie de la quantité dans Qté et regarde Nb de Vtx définit LigDep
Qté = Range("D5").Offset(Ligne, 0).Value
If Range("B5").Offset(Ligne, 0).Value = 2 Then LigDep = 7
If Range("B5").Offset(Ligne, 0).Value = 3 Then LigDep = 19
If Range("B5").Offset(Ligne, 0).Value = 4 Then LigDep = 31

' Test si Slide avec Traverse
If Range("C5").Offset(Ligne, 0).Value = "T" Then Trav = 6 Else Trav = 5

'Copie des dimensions du slide
Range(Cells(5 + Ligne, 5), Cells(5 + Ligne, 6)).Copy
Sheets("DONNEES").Range("B2:C2").PasteSpecial Paste:=xlValues,
Operation:=xlNone, SkipBlanks:úlse, Transpose:úlse


' Copie des longueurs de pièce à débiter
For j = 0 To Trav
For i = 1 To Qté
L = Sheets("LISTE").Range("H1").Offset(0, j).Value
Application.CutCopyMode = False
-> Sheets("DONNEES").Range(Cells(LigDep, 2 + j), Cells(LigDep +
7, 2 + j)).Copy '!!!!!!!! Bug sur cette ligne !!!!
Sheets("LISTE").Range("H5").Offset(L, j).PasteSpecial
Paste:=xlValues, Operation:=xlNone, SkipBlanks:úlse, Transpose:úlse
Application.CutCopyMode = False
Next
Next

Next

Sheets("LISTE").Range("A1").Select

End Sub



MichDenis
Le #4869741
2 syntaxes possibles :

Remarquer le point devant les 2 "Cells"

With Sheets("DONNEES")
.Range(.Cells(LigDep, 2 + j), .Cells(LigDep + 7, 2 + j)).Copy
End With

OU sur une même ligne avec références complètes :

Sheets("DONNEES").Range(Sheets("DONNEES").Cells(LigDep, 2 + j), Sheets("DONNEES").Cells(LigDep + 7,
2 + j)).Copy





"Changuy"
Bonsoir a tous,

Cette macro (voir + bas) ne fonctionne pas ! qui peut me dire pourquoi?
Errreur 1004 : Erreur définie par l'application ou l'objet

C'est cette ligne qui pose problème:
Sheets("DONNEES").Range(Cells(LigDep, 2 + j), Cells(LigDep + 7, 2 +
j)).Copy
Mai la macro fonctionne si je la remplace par:
Sheets("DONNEES").Select
Range(Cells(LigDep, 2 + j), Cells(LigDep + 7, 2 + j)).select
Selection.Copy

Merci pour votre aide
JC

Ci-jointe la macro complète:
---------------------------------------------------------------------
Sub COPIE2()
Dim Qté, NbSlide, Ligne, LigDep, Trav, i, j, L As Integer

Sheets("LISTE").Range("A1").Select
NbSlide = Range("B1").Value

For Ligne = 0 To (NbSlide - 1)

'Copie de la quantité dans Qté et regarde Nb de Vtx définit LigDep
Qté = Range("D5").Offset(Ligne, 0).Value
If Range("B5").Offset(Ligne, 0).Value = 2 Then LigDep = 7
If Range("B5").Offset(Ligne, 0).Value = 3 Then LigDep = 19
If Range("B5").Offset(Ligne, 0).Value = 4 Then LigDep = 31

' Test si Slide avec Traverse
If Range("C5").Offset(Ligne, 0).Value = "T" Then Trav = 6 Else Trav = 5

'Copie des dimensions du slide
Range(Cells(5 + Ligne, 5), Cells(5 + Ligne, 6)).Copy
Sheets("DONNEES").Range("B2:C2").PasteSpecial Paste:=xlValues,
Operation:=xlNone, SkipBlanks:úlse, Transpose:úlse


' Copie des longueurs de pièce à débiter
For j = 0 To Trav
For i = 1 To Qté
L = Sheets("LISTE").Range("H1").Offset(0, j).Value
Application.CutCopyMode = False
-> Sheets("DONNEES").Range(Cells(LigDep, 2 + j), Cells(LigDep +
7, 2 + j)).Copy '!!!!!!!! Bug sur cette ligne !!!!
Sheets("LISTE").Range("H5").Offset(L, j).PasteSpecial
Paste:=xlValues, Operation:=xlNone, SkipBlanks:úlse, Transpose:úlse
Application.CutCopyMode = False
Next
Next

Next

Sheets("LISTE").Range("A1").Select

End Sub
Changuy
Le #4869151
Merci a tous: MichDenis, Youky, Daniel.

JC

"MichDenis"
2 syntaxes possibles :

Remarquer le point devant les 2 "Cells"

With Sheets("DONNEES")
.Range(.Cells(LigDep, 2 + j), .Cells(LigDep + 7, 2 + j)).Copy
End With

OU sur une même ligne avec références complètes :

Sheets("DONNEES").Range(Sheets("DONNEES").Cells(LigDep, 2 + j),
Sheets("DONNEES").Cells(LigDep + 7,
2 + j)).Copy





"Changuy"
Bonsoir a tous,

Cette macro (voir + bas) ne fonctionne pas ! qui peut me dire pourquoi?
Errreur 1004 : Erreur définie par l'application ou l'objet

C'est cette ligne qui pose problème:
Sheets("DONNEES").Range(Cells(LigDep, 2 + j), Cells(LigDep + 7, 2 +
j)).Copy
Mai la macro fonctionne si je la remplace par:
Sheets("DONNEES").Select
Range(Cells(LigDep, 2 + j), Cells(LigDep + 7, 2 + j)).select
Selection.Copy

Merci pour votre aide
JC

Ci-jointe la macro complète:
---------------------------------------------------------------------
Sub COPIE2()
Dim Qté, NbSlide, Ligne, LigDep, Trav, i, j, L As Integer

Sheets("LISTE").Range("A1").Select
NbSlide = Range("B1").Value

For Ligne = 0 To (NbSlide - 1)

'Copie de la quantité dans Qté et regarde Nb de Vtx définit LigDep
Qté = Range("D5").Offset(Ligne, 0).Value
If Range("B5").Offset(Ligne, 0).Value = 2 Then LigDep = 7
If Range("B5").Offset(Ligne, 0).Value = 3 Then LigDep = 19
If Range("B5").Offset(Ligne, 0).Value = 4 Then LigDep = 31

' Test si Slide avec Traverse
If Range("C5").Offset(Ligne, 0).Value = "T" Then Trav = 6 Else Trav = 5

'Copie des dimensions du slide
Range(Cells(5 + Ligne, 5), Cells(5 + Ligne, 6)).Copy
Sheets("DONNEES").Range("B2:C2").PasteSpecial Paste:=xlValues,
Operation:=xlNone, SkipBlanks:úlse, Transpose:úlse


' Copie des longueurs de pièce à débiter
For j = 0 To Trav
For i = 1 To Qté
L = Sheets("LISTE").Range("H1").Offset(0, j).Value
Application.CutCopyMode = False
-> Sheets("DONNEES").Range(Cells(LigDep, 2 + j), Cells(LigDep +
7, 2 + j)).Copy '!!!!!!!! Bug sur cette ligne !!!!
Sheets("LISTE").Range("H5").Offset(L, j).PasteSpecial
Paste:=xlValues, Operation:=xlNone, SkipBlanks:úlse, Transpose:úlse
Application.CutCopyMode = False
Next
Next

Next

Sheets("LISTE").Range("A1").Select

End Sub





Publicité
Poster une réponse
Anonyme