Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
copier une valeur d'un fichier à un autre sans ouvrir le premier
Bonjour, je ne sais aps si mon titre est clair,
j'aimerais pouvoir copier la valeur d'une celulle d'un fichier à un autre sans avoir a ouvrir le premier fichier sachant que le nom du workbooks varie. En fait j'aimerais que :
Workbooks("test").Worksheets("test").Range("B31").Value = Workbooks(annee & Mois & Jour & "RENDEMENT").Worksheets("Fiche technique").Range("V23").Value
marche avec annee mois et jour comme variable.
Le soucis, c'est que ca marche pas!
Re : copier une valeur d'un fichier à un autre sans ouvrir le premier
Bonjour,
Une solution avec le code ci-dessous.
DEMARCHE à suivre pour faire un exemple test
1) Créez un classeur et enregistrez le dans "C:" sous le nom 20090131RENDEMENT.xls
2) Renommez une de ses feuilles Fiche technique et tapez une valeur quelconque en cellule V23
3) Enregistrez et fermez ce classeur (il doit être dans le dossier C: )
4) Ouvrez un nouveau classeur et copiez le code suivant dans un module Standard
Code:
'######################################################
'### Constante de la feuille réceptrice (à adapter) ###
'°°° Feuille du classeur actif °°°
Const FEUILLE As String = "test"
'######################################################
'######################################################
'### Les constantes suivantes sont pour l'exemple ###
'### mais elles peuvent avantageusement être ###
'### remplacées par des variables dont on affectera ###
'### la valeur directement dans le code ###
'######################################################
'°°° Classeur fermé °°°
Const CHEMIN As String = "C:\"
Const ANNEE As String = "2009"
Const MOIS As String = "01"
Const JOUR As String = "31"
Const CLASSEUR_FERME As String = "RENDEMENT.xls"
Const FEUIL_FERME As String = "Fiche technique"
Const CELL_FERME As String = "V23"
'######################################################
Sub ValeurClasseurFerme()
Dim S As Worksheet
On Error GoTo Erreur
Set S = ActiveWorkbook.Sheets(FEUILLE)
S.Activate
'--- La cellule de destination contiendra une formule qui fait référence à la cellule source ---
S.[b31] = "='" & CHEMIN & "[" & ANNEE & MOIS & JOUR & CLASSEUR_FERME & "]" & FEUIL_FERME & "'!" & CELL_FERME
'--- Si on ne veut pas la formule mais uniquement la valeur alors retirer les quotes de ce qui suit ---
'S.[b31].Copy
'S.[b31].PasteSpecial Paste:=xlPasteValues
'Application.CutCopyMode = False
Exit Sub
Erreur:
If Err = 9 Then
MsgBox "La feuille " & FEUILLE & " est introuvable."
Else
MsgBox "Erreur " & Err.Number & vbCrLf & Err.Description
End If
End Sub
5) Renommez une de ces feuilles test et lancez la macro ValeurClasseurFerme
En principe devrait s'afficher en cellule B31 la valeur de la cellule V23 de la feuille
Fiche technique du classeur fermé 20090131RENDEMENT.xls
Si tout fonctionne, ce qui s'affiche en B31 est une formule qui fait référence au classeur fermé mais si vous ne
voulez que la valeur il suffit de retirer les quotes du code (voir dans le code où cela est précisé).
Ce site utilise des cookies pour personnaliser le contenu, adapter votre expérience et vous garder connecté si vous vous enregistrez.
En continuant à utiliser ce site, vous consentez à notre utilisation de cookies.