XL 2013 Copier une même cellule de plusieurs feuilles Excel dans un autre classeur

Yuby

XLDnaute Nouveau
Bonjour,

Après plusieurs recherche je n'ai pas trouvé la solution. Je tente ma chance ici.

Dans le Classeur N°1, j'ai plusieurs feuilles Excel toutes identiques au niveau de la mise en forme avec juste les valeurs qui changent. Je veux mettre dans le Classeur N°2 une feuille récap en mettant dans la colonne C les valeurs des Cellules F8 de toutes les feuilles du classeur N°1, sans faire de copier coller car en déroulant le lien créé, la feuille ne change pas automatiquement.

Est ce que quelqu’un aurait une solution, sans faire de macro si possible. Si vous avez une solution avec macro je suis preneuse quand même ! 😁

Merci ! ☺️
 

Yuby

XLDnaute Nouveau
Bonjour Yuby, bienvenue sur XLD,

Pourquoi pas tout simplement des formules de liaison ?

A+
Bonjour, Merci !


Parce que il me semble qu'en faisant cela je dois changer le numéro de la feuille manuellement (à moins que je ne connaisse pas l'astuce pour le faire automatiquement). Cependant, j'en ai beaucoup et je voudrais que cela se fasse automatique pour éviter toutes erreurs de saisie.
 

job75

XLDnaute Barbatruc
Téléchargez les 2 fichiers joints dans le même dossier (le bureau).

Ouvrez le fichier .xlsm, cette macro dans ThisWorkbook s'exécute automatiquement :
VB:
Private Sub Workbook_Activate()
Dim chemin$, fichier$, cellule$, F As Worksheet, ouvre As Boolean, w As Worksheet, n%
chemin = ThisWorkbook.Path & "\"
fichier = "Classeur1.xlsx"
cellule = "F8"
Set F = ThisWorkbook.Sheets("récap")
Application.ScreenUpdating = False
On Error Resume Next
F.Range("C2:C" & F.Rows.Count).ClearContents 'RAZ
Workbooks(fichier).Activate
If Err Then Err = 0: Workbooks.Open (chemin & fichier): ouvre = True
If Err Then MsgBox "'" & chemin & fichier & "' introuvable !", 48: Exit Sub
n = 1
For Each w In ActiveWorkbook.Worksheets
    n = n + 1
    F.Cells(n, 3) = w.Range(cellule).Value 'copie la valeur
Next w
Application.EnableEvents = False 'désactive les évènements
If ouvre Then ActiveWorkbook.Close False Else F.Activate
Application.EnableEvents = True 'réactive les évènements
End Sub
 

Pièces jointes

  • Classeur1.xlsx
    11.6 KB · Affichages: 3
  • Classeur2.xlsm
    16.3 KB · Affichages: 3

Yuby

XLDnaute Nouveau
Téléchargez les 2 fichiers joints dans le même dossier (le bureau).

Ouvrez le fichier .xlsm, cette macro dans ThisWorkbook s'exécute automatiquement :
VB:
Private Sub Workbook_Activate()
Dim chemin$, fichier$, cellule$, F As Worksheet, ouvre As Boolean, w As Worksheet, n%
chemin = ThisWorkbook.Path & "\"
fichier = "Classeur1.xlsx"
cellule = "F8"
Set F = ThisWorkbook.Sheets("récap")
Application.ScreenUpdating = False
On Error Resume Next
F.Range("C2:C" & F.Rows.Count).ClearContents 'RAZ
Workbooks(fichier).Activate
If Err Then Err = 0: Workbooks.Open (chemin & fichier): ouvre = True
If Err Then MsgBox "'" & chemin & fichier & "' introuvable !", 48: Exit Sub
n = 1
For Each w In ActiveWorkbook.Worksheets
    n = n + 1
    F.Cells(n, 3) = w.Range(cellule).Value 'copie la valeur
Next w
Application.EnableEvents = False 'désactive les évènements
If ouvre Then ActiveWorkbook.Close False Else F.Activate
Application.EnableEvents = True 'réactive les évènements
End Sub
Je vous remercie beaucoup pour votre aide. Cependant j'ai trouvé la solution sans utilisé de macro. Les fonctions concaténer et indirect m'ont aidé à résoudre ce problème ☺️
 

Discussions similaires

Statistiques des forums

Discussions
312 201
Messages
2 086 171
Membres
103 151
dernier inscrit
nassim