VBA Récupérer contenu cellule dans autre classeur

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

P

Pat78

Guest
Bonsoir le forum,

Je bloque sur un petit problème.
Le classeur1 est un fichier de consolidation dans lequel je récupère les données d'une seule cellule, (toujours la même) depuis plusieurs autres classeurs qui me sont adressés et dont je ne connais pas le nom, (appelons le classeur2 pour notre exemple).

Si je pars du principe de n'avoir que deux classeurs ouverts en même temps (classeur1 - classeur2), j'ai ce code qui me suffit, mon problème est de pouvoir remplacer le code de la première ligne pour automatiquement identifier le nom du classeur2 ouvert.

Windows('Classeur2').Activate
Range('D6').Select
Selection.Copy
Windows('Classeur1').Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Merci pour votre précieuse aide, ...il y a peut être plus simple.

Pat
 
Bonsoir Pat, Dan, le Forum

Tiens, j'avais une demande cousine dans Lien supprimé

je dis 'cousine' car le but était de récupérer l'info sans ouvrir le classeur mais tout en pouvant choisir le fichier avec une boite de dialogue...

Sub MonLecteurDeFichierFermes()
Dim FileToRead As Variant
Dim RangeToRead As String, SheetToRead As String
Dim FileName As String, PathString As String
Dim y As Integer, X As Integer

SheetToRead = InputBox('Indiquer la Feuille à Lire' & vbCrLf & _
                      ' (sinon rien et vous pourrez choiser)', 'Sheet Address', 'Feuil1')
RangeToRead = InputBox('Indiquer la Cellule à Lire', 'Range Address', 'D6')


FileToRead = Application.GetOpenFilename('Classeurs Excel,*.xls')
If FileToRead = False Then Exit Sub

        y = Len(FileToRead)
           
For X = y To 1 Step -1
               
If Mid(FileToRead, X, 1) <> Chr(92) Then
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FileName = Mid(FileToRead, X, 1) & FileName
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
Else
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
Exit For
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
End If
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
Next X

PathString = Left(FileToRead, Len(FileToRead) - Len(FileName))

On Error GoTo Out
ActiveCell.Formula = '=
'' & PathString & '[' & FileName & ']' & SheetToRead & ''!' & RangeToRead
Exit Sub
Out:
MsgBox 'Opération Annulée'
End Sub

Bonne Nuit
[ol]@+Thierry[/ol]
 
Merci Dan & Thierry de vous être penchés sur mon pb.
La solution de Thierry me convient en l'état, je vais simplement éliminer l'étape de choix par inputbox de la cellule D6 qui est dans mon cas inutile.
Dan, je vais creuser ta solution.

Bon dimanche, et merci encore.
Pat.
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
10
Affichages
555
Réponses
17
Affichages
1 K
Retour