macro pour copier coller selon la valeur de la cellule

mordious

XLDnaute Occasionnel
Bonjour

en fonction de "C2"
je souhaite à l'aide du Bouton 2 lancer une Macro : copier les données de "Feuil1; D6:D35"
dans l'onglet corespondant au choix de :"Feuil1;C2" dans colonne "D"

ci-joint fichier

cordialement
 

Pièces jointes

  • test1.xlsm
    23.8 KB · Affichages: 42
  • test1.xlsm
    23.8 KB · Affichages: 50
  • test1.xlsm
    23.8 KB · Affichages: 53

Kevin B

XLDnaute Junior
Re : macro pour copier coller selon la valeur de la cellule

Bonjour,

Ci-joint un exemple de réponse à votre demande.

Cdt

Kevin
 

Pièces jointes

  • test1.xlsm
    24.7 KB · Affichages: 49
  • test1.xlsm
    24.7 KB · Affichages: 61
  • test1.xlsm
    24.7 KB · Affichages: 68

job75

XLDnaute Barbatruc
Re : macro pour copier coller selon la valeur de la cellule

Bonjour mordious, Kevin B,

Allons au plus simple :

Code:
Sub Transfert()
With Feuil1 'CodeName de la feuille source
  If .[C2] = "" Then Exit Sub
  Sheets(.[C2].Text).[C5:C35] = .[D6:D36].Value
End With
End Sub
A+
 

job75

XLDnaute Barbatruc
Re : macro pour copier coller selon la valeur de la cellule

Re,

1) Le point . devant les "Range" précise la feuille : celle définie par le With.

2) .Text est nécessaire, sinon la macro recherche les feuilles dont l'index (nombre) est 2015, 2016 ou 2017, elles n'existent pas.

3) Pour copier les valeurs cette méthode est classique : .[D6: D36].Value est un tableau (matrice) des valeurs.

A+
 

mordious

XLDnaute Occasionnel
Re : macro pour copier coller selon la valeur de la cellule

impeccable
merci à vous deux
merci aussi pour les explications

petite question : pour faire le chemin inverse :importer les donnes"2015 ,2016 , 2017" à partir de la Feuil1 avec un autre bouton
en gros la 1er macro pour sauvegarder
la 2é pour charger

cordialement
 

job75

XLDnaute Barbatruc
Re : macro pour copier coller selon la valeur de la cellule

Re,

petite question : pour faire le chemin inverse :importer les donnes"2015 ,2016 , 2017" à partir de la Feuil1 avec un autre bouton

Pas avec un autre bouton mais avec cette macro événementielle :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [C2]) Is Nothing Then Exit Sub
If [C2] = "" Then [D6:D36] = "": Exit Sub
[D6:D36] = Sheets([C2].Text).[C5:C35].Value
End Sub
A placer dans le code de Feuil1 (clic droit sur l'onglet et Visualiser le code).

A+
 
Dernière édition:

mordious

XLDnaute Occasionnel
Re : macro pour copier coller selon la valeur de la cellule

ok et merci tout fonctionne

"juste changer D2 en D6 car décalage"

et il possible de regrouper les donnés dans un même onglet et ensuite de les charger

Ex:Feuil1= si "année sélectionnée en C2" alors , à l'aide de la macro "transfert"
de sauvegarder dans un onglet "x" colonne "A" pour 2015 colonne; "B" pour 2016 colonne; "C" pour 2017

idem pour chemin inverse pour charger dans la "Feuil1"

cordialement
 

job75

XLDnaute Barbatruc
Re : macro pour copier coller selon la valeur de la cellule

Bonjour mordious, le forum,

"juste changer D2 en D6 car décalage" => coquille corrigée à 21h48

Avec un seul onglet de sauvegarde, voyez le fichier joint et ces 2 macros en Feuil1 :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [C2]) Is Nothing Then Exit Sub
Dim i As Variant
[D6:D36] = "" 'RAZ
With Feuil3 'CodeName de la feuille Sauvegarde
  i = Application.Match([C2], .[4:4], 0)
  If IsNumeric(i) Then [D6:D36] = .Cells(5, i + 1).Resize(31).Value
End With
End Sub

Private Sub CommandButton1_Click() 'bouton Transfert (ActiveX)
Dim i As Variant
With Feuil3 'CodeName de la feuille Sauvegarde
  i = Application.Match([C2], .[4:4], 0)
  If IsNumeric(i) Then
    .Cells(5, i + 1).Resize(31) = [D6:D36].Value
    Application.Goto .Cells(4, i) 'sélection facultative
  End If
End With
End Sub
Application.Match c'est la fonction EQUIV.

A+
 

Pièces jointes

  • Sauvegarde(1).xlsm
    29.6 KB · Affichages: 63
  • Sauvegarde(1).xlsm
    29.6 KB · Affichages: 63
  • Sauvegarde(1).xlsm
    29.6 KB · Affichages: 59

mordious

XLDnaute Occasionnel
Re : macro pour copier coller selon la valeur de la cellule

Bonjour

Encor une question

dans la macro Transfer
le transfer ce fait de colone à colonne

je souhaite le faire de :Feuil1 = ligne 9 colonne j,k,l,m,n,o,p
vers : Feuil3 =colonne selon (C2)

cordialement
 

job75

XLDnaute Barbatruc
Re : macro pour copier coller selon la valeur de la cellule

Bonjour mordious,

Sur ce forum ne prenez pas l'habitude de lancer des questions "en l'air".

Joignez un fichier en montrant ce que vous voulez faire.

"Feuil1 = ligne 9 colonne j,k,l,m,n,o,p" ce n'est pas du tout clair.

A+
 

mordious

XLDnaute Occasionnel
Re : macro pour copier coller selon la valeur de la cellule

bonjour job75

désolé

je souhaite que les lignes de saisies dans la "feuil1" soient transférées vers la "feuil3"
donc dans les macros : à la place de transférer 31 cellules d'une colonne
je souhaite transférer les cellules d'une ligne

ci-joint fichier

cordialement
 

Pièces jointes

  • test2.xlsm
    60.2 KB · Affichages: 42
  • test2.xlsm
    60.2 KB · Affichages: 52
  • test2.xlsm
    60.2 KB · Affichages: 47
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 412
Messages
2 088 196
Membres
103 763
dernier inscrit
p.michaux