Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Erreur sur l'objet Range (Bis)

4 réponses
Avatar
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:=False, Transpose:=False


' 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:=False, Transpose:=False
Application.CutCopyMode = False
Next
Next

Next

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

End Sub

4 réponses

Avatar
Daniel
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" a écrit dans le message de news:

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



Avatar
Youky
-> 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" a écrit dans le message de news:

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



Avatar
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" a écrit dans le message de news:

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
Avatar
Changuy
Merci a tous: MichDenis, Youky, Daniel.

JC

"MichDenis" a écrit dans le message de news:

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" a écrit dans le message de news:

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