Copier cellules sur un autre classeur

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

tiesto

XLDnaute Nouveau
Salut!

je suis un peu en galère pour trouver la bonne macro pour gerer mon copier coller de cellules.

J'aimerai copier des cellules (C9:C19) d'un fichier "plan1.xls" feuille "nombre" et des cellules d'un fichier "plan2.xls" (F9:F19) feuille "volume", dans un autre classeur "MAJ.xls" feuille "ges" (B2:B12).

J'ai tenté des macro avec :

Sub test()
GetValuesFromAClosedWorkbook "C😀ocuments", "plan1.xls", "Feuil1", "C9:C19"
End Sub

Sub GetValuesFromAClosedWorkbook(fPath As String, fName As String, _ sName, cellRange As String)

With Sheets("ges").Range("B2:B12")
.Formula "='" & fPath & "\[" & fName & "]" & sName & "'!" & _ cellRange
.Value = .Value
End With
End Sub

Mais ca ne marche pas....il met #Valeur! dans les cases B2 a B12 au lieu de mettre les valeurs numeriques de C9 a C19 du classeur plan1.
Merci pour votre aide
++
 
Re : Copier cellules sur un autre classeur

Bonsoir



Regardes ici
Copy a range from closed workbook (Local, Network and on the internet)

Les explications sont là (mais en anglais)


Autrement la syntaxe de ton code n'est pas le même que:
Code:
Sub GetValuesFromAClosedWorkbook(fPath As String, fName As String, _ sName, cellRange As String)

With ActiveSheet.Range(cellRange)
[B].FormulaArray[/B] = "='" & fPath & "\[" & fName & "]" & sName & "'!" & _ cellRange
.Value = .Value
End With
End Sub
 
Dernière édition:
Re : Copier cellules sur un autre classeur

Re



En reprenant l'exemple de Ron De Bruin
(test OK)

Code:
Sub GetRange(FilePath As String, FileName As String, SheetName As String, _
             SourceRange As String, DestRange As Range)
 'Go to the destination range
Application.Goto DestRange
 'Resize the DestRange to the same size as the SourceRange
Set DestRange = DestRange.Resize(Range(SourceRange).Rows.Count, _
                                     Range(SourceRange).Columns.Count)
'Add formula links to the closed file
With DestRange
    .FormulaArray = "='" & FilePath & "/[" & FileName & "]" & SheetName _
                        & "'!" & SourceRange
    .Value = .Value
End With
End Sub

En exécutant la macro ci-dessous
Les valeurs de plage A1:A10 du classeur c:\temp\test1.xls
sont recopiés dans le classeur actif
(qui contient les deux macros de ce message)
Code:
Sub File_In_Local_Folder()
    Application.ScreenUpdating = False
    On Error Resume Next
    'Call the macro GetRange
    GetRange "C:\Temp", "test1.xls", "Feuil1", "A1:A10", _
             Sheets("Feuil1").Range("A1")
    On Error GoTo 0
    Application.ScreenUpdating = True
End Sub


PS: Par précaution, mieux vaut sans doute, utliser la version originale de Ron
(avec le timer)
 
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éponses
5
Affichages
703
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
370
Réponses
9
Affichages
730
Réponses
3
Affichages
773
Retour