macro pour copier coller selon la valeur de la cellule

  • Initiateur de la discussion Initiateur de la discussion mordious
  • 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 !

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😀35"
dans l'onglet corespondant au choix de :"Feuil1;C2" dans colonne "D"

ci-joint fichier

cordialement
 

Pièces jointes

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+
 
Re : macro pour copier coller selon la valeur de la cellule

Bonjour,

En effet, beaucoup plus court que ce que je propose, pouvez-vous me détailler le code afin que je puisse le comprendre svp.

Merci

Cdt

Kevin
 
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+
 
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
 
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:
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
 
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

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
 
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+
 
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

Dernière édition:
- 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

Discussions similaires

  • Résolu(e)
Microsoft 365 DATEDIF
Réponses
11
Affichages
344
Retour