Copier/coller plusieurs cellules d'une feuille selon la valeur d'une autre cellule

PatrickPrev

XLDnaute Nouveau
Bonjour,

Ma question est : Comment faire pour que quand je choisi une valeur dans la cellule "A46" de la Feuil1, la plage de cellules "A2 à I3" de la Feuil3 se copie et vient se coller sur la plage de cellules"G45 à O46" de la feuil1 par bouton pas de problème je sais le faire
Voici le code de la macro du bouton

Sub Macro15()
Sheets("chargement carton" ).Select
Range("B1:J2" ).Select
Selection.Copy
Sheets("commande_client" ).Select
Range("G4546" ).Select
ActiveSheet.Paste
Range("T45" ).Select
End Sub

Mais voilà je voudrais que cela ce passe quand je choisi une valeur dans la cellule "A46"
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Copier/coller plusieurs cellules d'une feuille selon la valeur d'une autre cellu

Bonjour Patrick,

avec ceci: ( choisir le code qui convient le mieux)
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not intersect(Target, Range("A46")) Is Nothing Then

' ton code


End If
End Sub
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not intersect(Target, Range("A46")) Is Nothing Then

' ton code


End If
End Sub
à+
Philippe
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Copier/coller plusieurs cellules d'une feuille selon la valeur d'une autre cellu

Bonjour le fil, bonjour le forum,

Visiblement tu as une liste de choix dans la cellule A46. Dans ce cas, comme Philippe j'opterais pour la macro événementielle Change, mais essai avec ton code modifié :
Code:
Private Sub Worksheet_Change(ByVal Target As Range) 'au changement dans l'onglet
If Target.Address <> "$A$46" Then Exit Sub 'si le changement a lieu ailleurs qu'en A6, sort de la procédure
Sheets("chargement carton").Range("B1:J2").Copy Sheets("commande_client").Range("G4546") ' copie et colle la plage
Range("T45").Select 'sélectionne la cellule T45
End Sub
 

PatrickPrev

XLDnaute Nouveau
Re : Copier/coller plusieurs cellules d'une feuille selon la valeur d'une autre cellu

Bonjour à tous
Je me suis très très mal expliqué
Voilà j'ai une cellule "$A$46" qui contient une liste :
"Homme 12 cartons/carton-1;Homme 12 cartons/carton-2;Homme 12 cartons/carton-3;Homme 12 cartons/carton-4;Homme 12 cartons/carton-5"
Je souhaiterai quand
"$A$46" = "Homme 12 cartons/carton-1" copie les cellules "A2 à I3" de la feuille "Carton" et colle sur feuille "Commande" dans les cellules "G45 à O46"
"$A$46" = "Homme 12 cartons/carton-2" copie les cellules "J2 à R3" de la feuille "Carton" et colle sur feuille "Commande" dans les cellules "G45 à O46"
"$A$46" = "Homme 12 cartons/carton-3" copie les cellules "S2 à AA3" de la feuille "Carton" et colle sur feuille "Commande" dans les cellules "G45 à O46"
etc.

Merci
Patrick
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Copier/coller plusieurs cellules d'une feuille selon la valeur d'une autre cellu

Bonjour le fil, bonjour le forum,

Essaie comme ça :
Code:
Private Sub Worksheet_Change(ByVal Target As Range) 'au changement dans l'onglet
Dim ref As Byte 'déclare la variable ref (REFérence)

If Target.Address <> "$A$46" Then Exit Sub 'si le changement a lieu ailleurs qu'en A6, sort de la procédure
ref = CInt(Right(Target.Value, 1)) - 1 'définit la variable ref
With Sheets("Carton") 'prend en compte l'onglet "Carton"
    'copie et colle la plage décalée de ref x 9 colonnes
    .Range(.Cells(2, 1).Offset(0, 9 * ref), .Cells(3, 9).Offset(0, 9 * ref)).Copy Sheets("Commande").Range("G45")
End With 'fin de la prise en compte de l'onglet "Carton"
Range("T45").Select 'sélectionne la cellule T45
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 508
Messages
2 089 134
Membres
104 042
dernier inscrit
tropsy89