Erreur shift:=xlDown sous Excel 2010
Bonjour ,
j'ai un document avec une macro qui tourne super sous 2007, mais depuis ma migration vers 2010 plus moyen de faire tourner correctement , le code bloque sur la ligne suivante :
Sheets("Orders").Range(Sheets("Params").Range("CopyMastTo").Value).Insert Shift:=xlDownJe sais que le shift:=xlDown pose problème sous 2010 mais je vois pas comment corriger ...
Pouvez-vous m'aider ?
Cordialement
JuVeNaL
Bonjour,
Quelle est la valeur de Sheets("Params").Range("CopyMastTo").Value ?
Chez moi ta ligne de code ne pose pas de problème pour peu que Sheet1 et Sheet2 existent bien et que Range."CopyMastTo").Value renvoie une adresse du type A4 ou A7...
A+
galopin01 a écrit :Bonjour,
Quelle est la valeur de Sheets("Params").Range("CopyMastTo").Value ?
Chez moi ta ligne de code ne pose pas de problème pour peu que Sheet1 et Sheet2 existent bien et que Range."CopyMastTo").Value renvoie une adresse du type A4 ou A7...
A+
Bonjour Galopin01,
Merci pour ta réponse rapide , le contenu de la cellule qui donne la valeur et la suivante =
="Orders!A"&ROW(Orders!A835)&":"&VLOOKUP(COLUMN(Orders!CS6);ColIDs;2;FALSE)&ROW(Orders!A835)qui me donne le résultat suivant "Orders!A835:CS835"
Bien à toi
JuVeNaL
Bonjour,
Chez moi cette syntaxe ne pose pas de problème.
Fournir la totalité de la macro et le classeur KIVABIEN avec.
A+
galopin01 a écrit :Bonjour,
Chez moi cette syntaxe ne pose pas de problème.
Fournir la totalité de la macro et le classeur KIVABIEN avec.
A+
Bonjour Galopin01,
C'est une feuille très complexe ... et le problème arrive par moment sur certaines actions ...
cela risque d'étre compliqué de t'expliquer .. il faut presque le montrer .... comment puis-je faire ?
Voici déja la portion ou j'ai l'erreur qui ce produit :
Sub Btn_NewOrderRow()
Application.ScreenUpdating = False
' Add a row for a new order
Sheets("Orders").Activate
Dim Special As String
Special = Sheets("Params").Range("Special1").Value
ActiveSheet.Unprotect Special
' Put cursor at column A of the row to insert at
Sheets("Orders").Range(Sheets("Params").Range("PutAtAddr").Value).Activate
'
' Sheets("Params").Range("InsDuplChk").Value = Sheets("Params").Range("ToRow").Value
Sheets("Orders").Range("A1").Value = Sheets("Params").Range("DateToday").Value
Sheets("Orders").Range("ZA_No").Value = Sheets("Params").Range("NextZANo").Value
Sheets("Orders").Range(Sheets("Params").Range("CopyMastTo").Value).Insert Shift:=xlDown
Sheets("Orders").Range(Sheets("Params").Range("CopyMastFrom").Value).Copy
Sheets("Orders").Range(Sheets("Params").Range("CopyMastTo1").Value).PasteSpecial Paste:=xlPasteFormulas
Sheets("Orders").Range(Sheets("Params").Range("CopyMastTo1").Value).PasteSpecial Paste:=xlPasteFormats
' Sheets("Orders").Range("DupCheck").Copy
' Sheets("Orders").Range(Sheets("Params").Range("Cpy_DC_To").Value).PasteSpecial Paste:=xlPasteFormats
' Sheets("Orders").Range(Sheets("Params").Range("Cpy_DC_To").Value).PasteSpecial Paste:=xlFormulas
' Sheets("Orders").Range(Sheets("Params").Range("Cpy_DC_To").Value).PasteSpecial Paste:=xlAll
If Sheets("Params").Range("HideThem").Value = 1 Then ' Show any hidden orders before sorting
Sheets("Params").Range("HideThem").Value = 2
Sheets("Orders").Rows(Sheets("Params").Range("Show").Value).Hidden = False
End If
' Sort the Orders to get the added Order at the bottom
Sheets("Orders").Range("SortOrdBase").Sort _
Key1:=Range("Key_13"), Order1:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:= _
xlTopToBottom, DataOption1:=xlSortNormal
If Sheets("Params").Range("HideThem").Value = 1 Then
Sheets("Orders").Rows(Sheets("Params").Range("Show").Value).Hidden = False
Sheets("Params").Range("TestRow").Value = Sheets("Params").Range("FirstRow").Value
For R = Sheets("Params").Range("FirstRow").Value To Sheets("Params").Range("LastRow").Value
If Sheets("Params").Range("MatRcvd").Value > 0 Then
Sheets("Orders").Rows(Range("TestRow").Value).Hidden = True
End If
Sheets("Params").Range("TestRow").Value = Sheets("Params").Range("TestRow").Value + 1
Next R
End If
If Sheets("Params").Range("HideThem").Value = 0 Then ' If the completed orders were not hidden
GoTo EndIt
End If
' Re-hide rows that were hidden at the time of adding the new order
Sheets("Params").Range("HideThem").Value = 1
Sheets("Params").Range("TestRow").Value = Sheets("Params").Range("FirstRow").Value
For R = Sheets("Params").Range("FirstRow").Value To Sheets("Params").Range("LastRow").Value
If Sheets("Params").Range("MatRcvd").Value > 0 Then
Sheets("Orders").Rows(Range("TestRow").Value).Hidden = True
End If
Sheets("Params").Range("TestRow").Value = Sheets("Params").Range("TestRow").Value + 1
Next R
GoTo EndIt
EndIt:
Sheets("Orders").Range(Sheets("Params").Range("PlaceCursor1").Value).Activate
ActiveCell.Offset(RowOffset:=-1).Activate
ActiveCell.Offset(RowOffset:=1).Activate
ActiveCell.Offset(ColumnOffset:=-1).Activate
'This procedure unlocks all required cells in the newly added empty order row
Dim MyRow As Integer
MyRow = ActiveCell.Row
For x = 1 To 2
Cells(MyRow, x).Locked = False
Next x
Cells(MyRow, 2).ClearContents
Cells(MyRow, 3).Value = Sheets("Params").Range("NextZANo").Value
Cells(MyRow, 4).Locked = False
Cells(MyRow, 4).ClearContents
Cells(MyRow, 5).Value = 1
For x = 6 To 13
Cells(MyRow, x).Locked = False
Cells(MyRow, x).ClearContents
Next x
Cells(MyRow, 7).Value = "N"
For x = 16 To 21
Cells(MyRow, x).Locked = False
Cells(MyRow, x).ClearContents
Next x
Cells(MyRow, 24).Locked = False
Cells(MyRow, 24).ClearContents
For x = 27 To 29
Cells(MyRow, x).Locked = False
Cells(MyRow, x).ClearContents
Next x
For x = 33 To 40
Cells(MyRow, x).Locked = False
Cells(MyRow, x).ClearContents
Next x
For x = 42 To 49
Cells(MyRow, x).Locked = False
Cells(MyRow, x).ClearContents
Next x
For x = 52 To 54
Cells(MyRow, x).Locked = False
Cells(MyRow, x).ClearContents
Next x
For x = 56 To 57
Cells(MyRow, x).Locked = False
Cells(MyRow, x).ClearContents
Next x
For x = 56 To 57
Cells(MyRow, x).Locked = False
Cells(MyRow, x).ClearContents
Next x
Cells(MyRow, 61).Locked = False
Cells(MyRow, 61).ClearContents
For x = 63 To 71
Cells(MyRow, x).Locked = False
Cells(MyRow, x).ClearContents
Next x
Cells(MyRow, 69).Value = "N"
Cells(MyRow, 71).Value = "N"
Cells(MyRow, 1).Value = Sheets("Params").Range("DateToday").Value
Cells(MyRow, 2).Activate 'Put the cursor on the Customer cell of the new order line
ActiveSheet.Protect Special
Application.ScreenUpdating = True
MsgBox (" Done - New row inserted ......")
End SubLe bouton ajoute une ligne a la fin et fait une copie du contenu qui se trouve sur une autre sheet et applique le format aussi ...
Bien à toi
JuVeNaL
Bonjour,
Si le problème arrive "par moments", c'est bien que ce n'est pas cette ligne qui pose problème mais que "par moments" il rencontre une valeur "incompatible."
Apparemment CopyMastTo renvoie toujours la ligne 835
Pourquoi donc faire référence à elle ?
Sheets("Orders").Range("A835").Insert Shift:=xlDown...me parait bien suffisant. Non ?
A+
galopin01 a écrit :Bonjour,
Si le problème arrive "par moments", c'est bien que ce n'est pas cette ligne qui pose problème mais que "par moments" il rencontre une valeur "incompatible."
Apparemment CopyMastTo renvoie toujours la ligne 835
Pourquoi donc faire référence à elle ?
Sheets("Orders").Range("A835").Insert Shift:=xlDown...me parait bien suffisant. Non ?
A+
Bonjour,
Étrangement .. il ne passe pas a la ligne si je fait comme vous le dites .. il écrase la même ligne ...
Cordialement
Pascal
ça c'est juste pas possible :
Insert insère une nouvelle ligne 835 l'ancienne devenant la ligne 836
Après, ce que fait la suite de ta macro est une autre affaire... Mais tout ça me parait bien alambiqué. Il me semble que tu dois pouvoir simplifier tout ça sachant que ta nouvelle ligne sera toujours 835, tu dois pouvoir faire tes Copier/Coller et tes divers traitements de manière plus directe.
Mais je ne peux pas en dire plus en l'absence du fichier KIVABIEN.
A+
galopin01 a écrit :ça c'est juste pas possible :
Insert insère une nouvelle ligne 835 l'ancienne devenant la ligne 836
Après, ce que fait la suite de ta macro est une autre affaire... Mais tout ça me parait bien alambiqué. Il me semble que tu dois pouvoir simplifier tout ça sachant que ta nouvelle ligne sera toujours 835, tu dois pouvoir faire tes Copier/Coller et tes divers traitements de manière plus directe.
Mais je ne peux pas en dire plus en l'absence du fichier KIVABIEN.
A+
Merci pour ton aide ... je peux t'envoyer le fichier ? ou te montrer a distance sur mon PC si tu veux ?
Bien à toi
JuVeNaL
Voir message en MP
Purée... Qu'est-ce que tu fumes ?
Tu m'avais laissé une grosse bouse en recopiant mon Range("A835").Insert Shift:=xlDown
Mais ayant bien compris le truc j'ai vu que ce n'étais pas le problème, j'ai commencé par remettre la ligne d'origine :
Sheets("Orders").Range(Sheets("Params").Range("CopyMastTo").Value).Insert Shift:=xlDown...et ça ne produit aucune erreur.
J'ai testé les lignes suivantes... Pas d'erreur non plus : J'arrive bien au
MsgBox (" Done - New row inserted ......")Il va falloir que tu m'expliques comment tu fais pour planter le machin ?
A+
[quote="galopin01"]Purée... Qu'est-ce que tu fumes ?
Tu m'avais laissé une grosse bouse en recopiant mon Range("A835").Insert Shift:=xlDown
Mais ayant bien compris le truc j'ai vu que ce n'étais pas le problème, j'ai commencé par remettre la ligne d'origine :
Sheets("Orders").Range(Sheets("Params").Range("CopyMastTo").Value).Insert Shift:=xlDown...et ça ne produit aucune erreur.
J'ai testé les lignes suivantes... Pas d'erreur non plus : J'arrive bien au
MsgBox (" Done - New row inserted ......")Il va falloir que tu m'expliques comment tu fais pour planter le machin ?
A+[/quote
Si tu double click sur une cellule verrouillé et qu'il t'affiche un message comme quoi elle est verrouiller et que tu retente de faire un NEW ORDER il il te génére une erreur avec pleins de chiffres .. puis après il plante avec l'erreur 1004
Tu utilise bien Office 2010 ?
Bien à toi
JuVeNaL
J'ai cliqué sur plein de cellules verrouillées puis cliqué sur le bouton New Order mais je ne produis aucune erreur.
Oui j'ai bien 2010 sur W7
A+
galopin01 a écrit :J'ai cliqué sur plein de cellules verrouillées puis cliqué sur le bouton New Order mais je ne produis aucune erreur.
Oui j'ai bien 2010 sur W7
A+
Bonjour Galopin01,
Puis-je t'envoyer un lien pour que tu puisse voir mon écran et te montrer comment j'arrive a l'erreur ?
Bien à toi
JuVeNaL
bonjour,
Tu peux m'envoyer tout ce que tu veux du moment que tu ne m'obliges pas à charger des programmes indésirables.
Bonne journée.