Copie groupe de cellules

  • Initiateur de la discussion Initiateur de la discussion DominicBeauce
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

D

DominicBeauce

Guest
Bonjour,

Dans le fichier attaché, je cherche à copier un groupe de de cellules (# de pièces avec prix) pour chaque modèle de client. Manuellement c'est pas compliqué sauf que j'ai beaucoup de modèle client et de # de pièces que dans le fichier ci-joint.



Merci de votre aide!
Salutations
 

Pièces jointes

Re : Copie groupe de cellules

DominicBeauce,

Un essai dans le fichier joint. Le code VB est dans le module de code de la feuille "Sheet5":
VB:
Option Explicit

Const BaseProduit = "A3"
Const BaseClient = "E3"
Const BaseCopie = "G3"

Sub recopier()
Dim Produit As Range, Client As Range, CopierVers As Range, xcell As Range

Application.ScreenUpdating = False
Set Produit = Range(BaseProduit).End(xlDown)
Set Produit = Range(Range(BaseProduit).Offset(1), Produit).Resize(, 3)
Set Client = Range(BaseClient).End(xlDown)
Set Client = Range(Range(BaseClient).Offset(1), Client)
Set CopierVers = Range(BaseCopie)

Range(CopierVers, CopierVers.End(xlDown).Offset(, 3)).Clear
CopierVers.Value = Range(BaseClient)
CopierVers.Offset(, 1).Resize(, 3).Value = Range(BaseProduit).Resize(, 3).Value
CopierVers.Resize(, 4).Interior.Color = RGB(200, 200, 200)

Set CopierVers = CopierVers.Offset(1)
For Each xcell In Client
  CopierVers.Resize(Produit.Rows.Count).Value = xcell
  CopierVers.Offset(, 1).Resize(Produit.Rows.Count, 3).Value = Produit.Value
  CopierVers.Resize(Produit.Rows.Count, 4).Interior.Color = xcell.Interior.Color
  CopierVers.Offset(, 3).Resize(Produit.Rows.Count).NumberFormat = _
        "_-[$$-1009]* #,##0.00_-;-[$$-1009]* #,##0.00_-;_-[$$-1009]* ""-""??_-;_-@_-"
  
  Set CopierVers = CopierVers.Offset(Produit.Rows.Count)
Next xcell
Application.ScreenUpdating = True
End Sub

nb: dans le code, il y a trois constantes contenant des adresses à adapter selon votre cas:
  • Const BaseProduit = "A3" -> adresse de la 1ière cellule d'en-tête de la table produit
  • Const BaseClient = "E3" -> adresse de la 1ière cellule d'en-tête de la table modèle client
  • Const BaseCopie = "G3" -> adresse de la 1ière cellule d'en-tête de la table résultat de la copie
 

Pièces jointes

Dernière édition:
Re : Copie groupe de cellules

Wow Merci énorme, je l'ai adapté à mon fichier maitre et sa fonctionne Nickel!!!

Si je veux conserver les ''leading zero") de la colonne "Code", c'est bien cette ligne que je dois modifier ?
"_-[$$-1009]* #,##0.00_-;-[$$-1009]* #,##0.00_-;_-[$$-1009]* ""-""??_-;_-@_-"
 
Re : Copie groupe de cellules

Bonsoir DominicBeauce,
(...) Si je veux conserver les ''leading zero") de la colonne "Code", c'est bien cette ligne que je dois modifier ?
"_-[$$-1009]* #,##0.00_-;-[$$-1009]* #,##0.00_-;_-[$$-1009]* ""-""??_-;_-@_-"

Cette ligne doit être conservée car elle formate la colonne des montants en $.

Pour formater la colonne des codes, rajouter la ligne:
Code:
  CopierVers.Offset(, 1).Resize(Produit.Rows.Count).NumberFormat = "000"
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
221
Retour