VBA copier coller entre plusieurs fichiers différents

cg1980

XLDnaute Occasionnel
Bonjour,

J'aimerais faire qqchose de peut-être un peu particulier.

Il s'agirait de travailler comme dans une base de données entre 2 fichiers excel.

Dans le fichier extraction.xls, j'aimerais faire des extractions venant du fichier base.

Dans base, en mettant la date d'extraction en C2, j'aimerais lancer une macro qui me fasse un copier coller en transopsé de la ligne 1 (les codes ISIN) et également me copie le montant qu'on a dans ces codes à la date indiqué d'extraction.

en changeant la date on change les montants mais on copie toujours les codes au cas où il y a eu des nouveaux ajouts.

merci de votre aide. j'espere etre assez clair. dites moi si besoin de plus de précision
 

Pièces jointes

  • base.xlsx
    8.7 KB · Affichages: 124
  • extraction.xlsx
    8.8 KB · Affichages: 134
  • base.xlsx
    8.7 KB · Affichages: 135
  • extraction.xlsx
    8.8 KB · Affichages: 125
  • base.xlsx
    8.7 KB · Affichages: 138
  • extraction.xlsx
    8.8 KB · Affichages: 122

job75

XLDnaute Barbatruc
Re : VBA copier coller entre plusieurs fichiers différents

Bonjour cg1980,

C'est vraiment très classique.

Dans le code de la feuille :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Set Target = Intersect(Target, [C2])
If Target Is Nothing Then Exit Sub
Application.ScreenUpdating = False
[B4:B6] = ""
If Target = "" Then Exit Sub
Dim Wb As Workbook, F As Worksheet, lig As Variant
Application.DisplayAlerts = False 'si le fichier est déjà ouvert
On Error Resume Next
Set Wb = Workbooks.Open(ThisWorkbook.Path & "\base") 'chemin à adapter
If Err Then MsgBox "Fichier 'base' introuvable...": Exit Sub
Set F = Wb.Sheets("Feuil1") 'nom de feuille à adapter
If Err Then MsgBox "Feuille 'Feuil1' introuvable...": Exit Sub
On Error GoTo 0
lig = Application.Match(Target, F.[A:A], 0)
If IsNumeric(lig) Then _
  [B4:B6] = Application.Transpose(F.Cells(lig, 2).Resize(, 3))
Wb.Close 'fermeture du fichier base
End Sub
Notez le contrôle d'erreur.

Fichiers .xls joints. Les télécharger sur le bureau avant de tester.

A+
 

Pièces jointes

  • extraction(1).zip
    18.2 KB · Affichages: 143
  • extraction(1).zip
    18.2 KB · Affichages: 148
  • extraction(1).zip
    18.2 KB · Affichages: 144
Dernière édition:

cg1980

XLDnaute Occasionnel
Re : VBA copier coller entre plusieurs fichiers différents

re bonjour.

c-est pas mal pousse pour moi je dois dire et je ne connais pas exactement le fonctionnement de cette facon de faire.

quelqu un peut m aider a adapter cela dans le fichier ci joint.

au lieu d avoir 2 file, il n y en a que un.


message readapter ci dessous
"Bonjour,

J'aimerais faire qqchose de peut-être un peu particulier.

Il s'agirait de travailler comme dans une base de données entre 2 feuilles.

Dans le fichier testi.xls, j'aimerais faire des extractions venant de la page historical market values.

Dans feuil1, en mettant la date d'extraction en C2, j'aimerais lancer une macro qui me copie le montant qu'on a dans ces codes à la date indiqué d'extraction.

en changeant la date on change les montants indiques
merci de votre aide. j'espere etre assez clair. dites moi si besoin de plus de précision .
 

Pièces jointes

  • testi.xlsm
    138.4 KB · Affichages: 102
  • testi.xlsm
    138.4 KB · Affichages: 101
  • testi.xlsm
    138.4 KB · Affichages: 101

job75

XLDnaute Barbatruc
Re : VBA copier coller entre plusieurs fichiers différents

Bonsoir,

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Set Target = Intersect(Target, [C2])
If Target Is Nothing Then Exit Sub
Dim lig As Variant
With Sheets("Historical Market Values") 'With Sheet4 'CodeName
  lig = Application.Match(Target, .[A:A], 0)
  If IsError(lig) Then
    [B5:B8] = ""
  Else
    [B5:B8] = Application.Transpose(.Cells(lig, 2).Resize(, 4))
  End If
End With
End Sub
A+
 

Pièces jointes

  • test(1).xls
    114 KB · Affichages: 101
  • test(1).xls
    114 KB · Affichages: 125
  • test(1).xls
    114 KB · Affichages: 124

cg1980

XLDnaute Occasionnel
Re : VBA copier coller entre plusieurs fichiers différents

merci mais ou est ce que je dois preciser si par exemple ma liste de code s allonge. je ne vais donc plus jusqua A8 mais jusqu a A100 par exemple. c est a dire que la liste de en colA Feuil1 ne va plus jusqu en A8 mais jusqu a A100

merci encore
 

job75

XLDnaute Barbatruc
Re : VBA copier coller entre plusieurs fichiers différents

Re,

Quel que soit le nombre de colonnes à transposer :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Set Target = Intersect(Target, [C2])
If Target Is Nothing Then Exit Sub
Dim lig As Variant, col As Integer
With Sheets("Historical Market Values") 'With Sheet4 'CodeName
  lig = Application.Match(Target, .[A:A], 0)
  col = .Cells(1, .Columns.count).End(xlToLeft).Column 'dernière colonne
  [A4].Resize(col) = Application.Transpose(.[A1].Resize(, col))
  If IsError(lig) Then
    Range("A4:B" & Rows.count) = ""
  Else
    [B5].Resize(col - 1) = Application.Transpose(.Cells(lig, 2).Resize(, col - 1))
  End If
End With
End Sub
Fichier (2).

A+
 

Pièces jointes

  • test(2).xls
    114.5 KB · Affichages: 103
  • test(2).xls
    114.5 KB · Affichages: 109
  • test(2).xls
    114.5 KB · Affichages: 102

job75

XLDnaute Barbatruc
Re : VBA copier coller entre plusieurs fichiers différents

Bonjour cg1980, le forum,

J'ai revu l'effacement des plages en fin de macro :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Set Target = Intersect(Target, [C2])
If Target Is Nothing Then Exit Sub
Dim lig As Variant, col As Integer
With Sheets("Historical Market Values") 'With Sheet4 'CodeName
  lig = Application.Match(Target, .[A:A], 0)
  col = .Cells(1, .Columns.count).End(xlToLeft).Column 'dernière colonne
  [A4].Resize(col) = Application.Transpose(.[A1].Resize(, col))
  If IsNumeric(lig) Then _
    [B5].Resize(col) = Application.Transpose(.Cells(lig, 2).Resize(, col))
  [A4:B4].Offset(IIf(IsNumeric(lig), col, 0)).Resize(20000).ClearContents
End With
End Sub
Fichier (3).

A+
 

Pièces jointes

  • test(3).xls
    116.5 KB · Affichages: 120
  • test(3).xls
    116.5 KB · Affichages: 133
  • test(3).xls
    116.5 KB · Affichages: 126
Dernière édition:

Discussions similaires

Réponses
6
Affichages
388

Statistiques des forums

Discussions
312 108
Messages
2 085 377
Membres
102 876
dernier inscrit
BouteilleMan