Possibilité d'effectuer plusieurs opération de collage à la fois ?
Bonjour à tous,
J'ai un petit soucis que je n'arrive pas à résoudre, je ne suis même pas sur que ce soit possible, malgré mes recherches je n'ai rien trouvé à ce sujet.
Je m'explique :
J'aurais besoin de copier coller d'une feuille à une autre des valeurs, MAIS :
- Il faut que le collage se fasse en addition avec les valeurs des cellules existantes : opération xlPasteSpecialOperationAdd
- Il faut que le collage prenne uniquement les valeurs et non les formules, le tout sans prendre en compte la mise en forme de l'endroit d'où ont été copié les valeurs : opération PasteSpecial (xlPasteValues) ? (je ne suis pas sur de celle-ci)
- Et pour finir il faut que le collage ne colle pas les bordures du tableau d'où ont été copié les valeurs je ne veux pas que le quadrillage soit recopié : opération xlPasteAllExceptBorders
Voilà voilà.
Mon fichier est privé je ne peux pas vous le partager.
Je vous met tout de même la partie du code intéressante :
Private Sub ValiderEntreeStock_Click()
'Il faut copier coller l'entrée stock vers le récap stock en l'additionnant avec l'existant, le choix de la colonne se fait en fonction de la combobox 3
'Copie colle la liste indiqué dans la feuille entrée stock pour l'ajouter à l'inventaire (feuille recap_stock)
Sheets("entrée_stock").Activate
Range("H5").Activate
Range(Selection, Selection.End(xlDown)).Copy
Sheets("recap_stock").Activate
Sheets("recap_stock").Range("G3").Activate
Do While ComboBox3.Value <> ActiveCell
ActiveCell.Offset(0, 1).Select
Loop
ActiveCell.Offset(2, 0).Select
ActiveCell.PasteSpecial _
Operation:=xlPasteSpecialOperationAdd
Application.CutCopyMode = False
' colle uniquement les valeurs sans la mise en forme de l'endroit de provenance :
' PasteSpecial (xlPasteValues)
' colle sans prendre en compte les bordures et le cadrillage du tableau de l'endroit d'où ont été copié les valeurs :
' xlPasteAllExceptBorders
End Sub
Si quelqu'un à la solution pour mettre toutes ces opérations de collage "ensemble" du moins qu'elles soient toutes prise en compte, car je ne sais pas comment faire j'ai essayer de les mettre simplement à la suite mais sans succès. Surement une erreur de ma part mais je ne sais où
Merci de m'éclairer ça m'aiderais beaucoup,
Bonne journée,
Bonjour La Taupe U.Milité
En VBA ça donne
Private Sub ValiderEntreeStock_Click()
Dim dLigS As Long, Col As Long
' Avec la feuille ENTREE stock
With Sheets("entrée_stock")
' Dernière ligne remplie de la colonne H
dlig = .Range("H" & Rows.Count).End(xlUp).Row
' Copier toutes les cellules
.Range("H5:H" & dlig).Copy
End With
' Pour commencer sur la colonne G
Col = 7
' Avc la feuille récap
With Sheets("recap_stock")
' Vérifier si la colonne différetne de la combobox
Do While ComboBox3.Value <> .Cells(3, Col)
' PAsser à la colonne suivante
Col = Col + 1
Loop
' Sur la colonne trouvée en ligne 5 coller les valeurs par ajout
.Cells(5, Col).PasteSpecial Paste:=xlPasteValues, Operation:=xlAdd, SkipBlanks:=False, Transpose:=False
End With
' Désactiver le copier/coller
Application.CutCopyMode = False
End Sub
A+
Bonjour U.Milité, Bruno,
Un grand merci à vous deux,
Merci Bruno pour ce bout de code qui m'aide bien (c'est la suite du projet sur lequel tu m'avais déjà aidé)
Merci beaucoup,
Toujours aussi satisfaisant d'avoir de l'aide rapidement avec un résultat parfait.
Bonne journée à vous deux.
Et très certainement à bientôt dans un nouveau poste pour les prochaines étapes où je bloquerai
Ah oui ! il faut la voir cette petite flèche
Juste une dernière question, par hasard, saurais-tu s'il y a une une formule qui fait l'inverse de celle-ci : Operation:=xlAdd
Remove fonctionne ?
Qui lorsque tu copies colles soustrait la valeur ?
Merci par avance pour ton retour
Re,
Affirmatif
.PasteSpecial Paste:=xlPasteValues, Operation:=xlSubtract,SkipBlanks:=False, Transpose:=False
A+
Mais quel homme rempli de savoir, c'est fou de savoir tout ça !
Merci beaucoup ! Une fois de plus tu me sauves !
A bientôt
Re,
C'est surtout que cet homme (comme tu dis) sait se servir de l'enregistreur de macros
Bonjour à tous,
Je me permets de revenir sur ce post car j'ai une problématique ressemblant au titre du post, sur un copier coller,
J'explique :
J'ai une feuille n°1 avec des valeurs, ces valeurs sont à la suite vers le bas dans la colonne L, ces cellules sont surlignés soit en vert, rouge ou orange en fonction d'une règle que j'ai crée. Cette règle, fait un calcul si L15 est < J15-K15 alors rouge si > alors vert etc ...
Je souhaiterai copier ces valeurs avec la couleur sur ma feuille n°2 dans la cellule H10 jusque la dernière cellule H non vide.
J'arrive à copier la valeur en utilisant Paste:=xlPasteValues
J'essai de rajouter la couleur donc en utilisant Paste:=xlPasteFormats
Mais là problème, quand il reprend le format des cellules de la feuille n°1 il reprend la règle de la mise en forme et donc me soustrait les 2 colonnes d'avant sur ma feuille 2, sauf que les 2 colonnes là n'ont pas les mêmes valeur que sur ma feuille n° 1. Ce qui me fait me retrouver avec une cellule verte sur ma feuille 2 alors que sur la feuille 1 elle est rouge ou parfois ca correspond parce que le hasard.
J'aimerais faire enfaite comme une capture d'écran tel quel de ma colonne sur la feuille 1 vers ma feuille 2 en colonne H. Je veux les mêmes valeurs et la même couleur de cellule de ma feuille 1 vers ma feuille 2
Je ne sais pas si je me suis bien fait comprendre,
Je reste disponible,
Merci beaucoup aux personnes qui voudront bien m'aider, persuadé qu'une solution existe,
Merci beaucoup !
Hello !
J'ai finis par trouver tout seul comme un grand après de nombreux essais mais pour ce que ca intéresse je vous partage la partie du code pour résoudre ce problème :
' Copie colle le reliquat de l'équipe A (on prend du coffrage) vers la feuille liste de matos à envoyer pour mémo
' Avec la feuille accueil
With Sheets("Accueil")
' Dernière ligne remplie de la colonne L
derLig = .Range("L" & Rows.Count).End(xlUp).Row
' Copier toutes les cellules
.Range("L15:L" & derLig).CopyPicture Appearance:=xlScreen, Format:=xlPicture
' Colle en image le reliquat de l'équipe A
Sheets("Liste de matériel à envoyer").Range("H10").Activate
ActiveSheet.PasteSpecial Format:="Image (métafichier amélioré)", Link:= _
False, DisplayAsIcon:=False
End With
Voila voila,
Merci à tous