Alternative à Copier-Coller ?
Bonjour à toutes et tous,
Plus mon projet avance et plus les difficultés augmentent ...
Je me tourne encore une fois vers vous pour solliciter votre aide.
Je vous expose mon souci actuel de la feuille "Décembre" en cliquant sur le bouton "STOCK", je copie certaines colonnes que je colle dans la feuille "STOCK" et je supprime les lignes vides. Idem pour "IMPRÉGNATION". Seulement la Macro bloque (--> ActiveSheet.Paste).
Problème que je ne rencontre pas avec la Macro "Bouton : Fin de Mois" ou je peux copier et coller plusieurs fois sans soucis.
Pouvez vous m'éclairer sur ce qui est pour moi un grand mystère.
Merci d'avance à celui ou celle qui pourra m'aider.
Thierry
bonjour bidouille699
j'ai regarder un peu ton fichier et je te dirai de commencer par éclaircir les codes en enlevant le maximum de .select tel que le module7 impression que voici
Sub IMPRESSION()
With Range("A3:A22").Borders.LineStyle = 0
'.Borders(xlDiagonalDown).LineStyle = xlNone
'Selection.Borders(xlDiagonalUp).LineStyle = xlNone
'With Selection.Borders(xlEdgeLeft)
' .LineStyle = xlContinuous
' .ColorIndex = 0
' .TintAndShade = 0
' .Weight = xlThin
'End With
' With Selection.Borders(xlEdgeTop)
' .LineStyle = xlContinuous
' .ColorIndex = 0
' .TintAndShade = 0
' .Weight = xlThin
'End With
'With Selection.Borders(xlEdgeBottom)
' .LineStyle = xlContinuous
' .ColorIndex = 0
' .TintAndShade = 0
' .Weight = xlThin
' End With
' With Selection.Borders(xlEdgeRight)
' .LineStyle = xlContinuous
' .ColorIndex = 0
' .TintAndShade = 0
' .Weight = xlThin
'End With
' With Selection.Borders(xlInsideVertical)
' .LineStyle = xlContinuous
' .ColorIndex = 0
' .TintAndShade = 0
' .Weight = xlThin
' End With
' With Selection.Borders(xlInsideHorizontal)
' .LineStyle = xlContinuous
' .ColorIndex = 0
' .TintAndShade = 0
' .Weight = xlThin
End With
Range("A3").Dialogs(xlDialogPrint).Show
End Sub
il n'en reste que 5 lignes
Pascal
Salut tout le monde !
Bidouille,
Sur tes macros, ton activesheet.paste apparait deux fois, quel est le but ?
'On colle ....
ActiveSheet.Paste
ActiveSheet.Paste
Application.CutCopyMode = False
Gaz0line a écrit :Salut tout le monde !
Bidouille,
Sur tes macros, ton activesheet.paste apparait deux fois, quel est le but ?
'On colle .... ActiveSheet.Paste ActiveSheet.Paste Application.CutCopyMode = False
Bonjour Gaz0line
Comme je suis débutant, j'ai enregistré une macro (copier une cellule et la recopier dans une autre) pour suivre l'exemple et il y a à chaque fois 2 ActiveSheet.Paste ...
Bon j'ai fait un essai avec 1 seul mais toujours pareil ...
grisan29 a écrit :bonjour bidouille699
j'ai regarder un peu ton fichier et je te dirai de commencer par éclaircir les codes en enlevant le maximum de .select tel que le module7 impression que voici
Sub IMPRESSION() With Range("A3:A22").Borders.LineStyle = 0 '.Borders(xlDiagonalDown).LineStyle = xlNone 'Selection.Borders(xlDiagonalUp).LineStyle = xlNone 'With Selection.Borders(xlEdgeLeft) ' .LineStyle = xlContinuous ' .ColorIndex = 0 ' .TintAndShade = 0 ' .Weight = xlThin 'End With ' With Selection.Borders(xlEdgeTop) ' .LineStyle = xlContinuous ' .ColorIndex = 0 ' .TintAndShade = 0 ' .Weight = xlThin 'End With 'With Selection.Borders(xlEdgeBottom) ' .LineStyle = xlContinuous ' .ColorIndex = 0 ' .TintAndShade = 0 ' .Weight = xlThin ' End With ' With Selection.Borders(xlEdgeRight) ' .LineStyle = xlContinuous ' .ColorIndex = 0 ' .TintAndShade = 0 ' .Weight = xlThin 'End With ' With Selection.Borders(xlInsideVertical) ' .LineStyle = xlContinuous ' .ColorIndex = 0 ' .TintAndShade = 0 ' .Weight = xlThin ' End With ' With Selection.Borders(xlInsideHorizontal) ' .LineStyle = xlContinuous ' .ColorIndex = 0 ' .TintAndShade = 0 ' .Weight = xlThin End With Range("A3").Dialogs(xlDialogPrint).Show End Sub
il n'en reste que 5 lignes
Pascal
Bonjour Pascal,
Effectivement le code est grandement éclairci !
Est ce que cela peut influer sur le fait que je ne puisse copier-coller qu'une seule fois ?
Thierry
Bon ...
J'ai essayé ça, palcé avant et après ...
" Private Declare Function OpenClipboard Lib "user32" _
(ByVal hwnd As Long) As Long
Private Declare Function EmptyClipboard Lib "user32" () As Long
Private Declare Function CloseClipboard Lib "user32" () As Long
Sub Vider()
OpenClipboard 0
EmptyClipboard
CloseClipboard
End Sub "
et ça :
" Sub Clear()
Dim truc As DataObject
Set truc = New DataObject
truc.SetText ""
truc.PutInClipboard
Set truc = Nothing
End Sub "
Rien à faire. Au moins une piste ?
bonsoir gazoline, bidouille699 et le forum
il te manque une feuille
With Sheets("MAGASIN")
et aussi celle la et d'autres
Sheets("Doc. Lots à préparer")
appuie sur le bouton "code" pour mettre ton code comme je l'ai fait, le manque de feuilles entraine des bugs
ou trouve tu les codes que tu a mis sur ton post précédent
Pascal
re-bonsoir Pascal,
Oups désolé pour le code, je n'avais pas remarqué le bouton...
Thierry
re bonsoir thierry
les codes que tu a recopier dans ton post
Private Declare Function OpenClipboard Lib "user32" _
(ByVal hwnd As Long) As Long
Private Declare Function EmptyClipboard Lib "user32" () As Long
Private Declare Function CloseClipboard Lib "user32" () As Long
sont a mettre dans un module pour déclarer des apis qui n'ont rien a voir dans ton fichier sinon tu ne vas plus rien comprendre
ou tu les a essayer
avant et après quoi????????J'ai essayé ça, palcé avant et après ...
je ne connais pas tout ce que tu demandes et laisse d'autres te répondre
Pascal
OK !
J'arrête mes recherches sur d'autres sites certainement trop pointu pour moi.
Je vais formuler mon problème différemment, serait-il possible de :
1) Feuille "Décembre" : Mettre dans une variable la plage de cellules que normalement je devais copier ("U9:Y39")
2) Feuille "STOCK" : Trouver la dernière cellule remplie + 1 dans la colonne A et essayer de délimiter une plage de ("A" & DernLigne + 1 & ":"D" & DernLigne + 31)
3) De déclarer que les valeurs de la plage "STOCK" sont égales à celles de la plage "Décembre"
4) De supprimer les lignes vides
A chaque fois la plage sur la feuille stock commencera a la colonne A dernière ligne +1 jusqu'à Colonne D dernière ligne + 31 (correspondant au moins complet 31 jours)
A votre avis ?
En tout cas merci pour vos remarques qui me font avancer !!
Thierry
Bonjour à toutes et à tous,
J'ai trouvé, le problème est réglé. J'avais dans les pages STOCK et IMPREGNATION , .... ce code :
Dim cellule As Range
For Each cellule In Range("A3:J500")
If cellule <> "" Then cellule.Borders.Weight = xlThin
Next
je l'ai enlevé et tout re-fonctionne.
Je vous souhaite de très bonnes fêtes de fin d'année.
Thierry