Bonjour,
j'ai développé un petit tableur.
J'ai fais pas mal de modif sur ma V2, sans penser à ce que devenait ma V1.
Bref, ça va être "pourri" si je veux faire un "patch"....
Donc, je me suis dis : "Fais une macro qui extrait les données de la V1,
pour les importer sur ma V2".
Mais pouvez-vous m'aider, j'ai un peu de mal.
Dans mon optique, il faudrait demander à l'utilisateur de choisir le fichier
de la V1. Idéalement, le dossier de recherche pourrait être le dossier mère
de celui ou est ma V2 :
exemple : ma V2 est dans C:DOC\MOI\2009, donc mon dossier de recherche à
afficher est C:DOC\MOI (sachant que le chemin bouge tout le temps, il faut
gérer avec "thisworkbook.path" je pense, de mémoire).
Donc, comment faire pour faire que dans ma V2 (classeur actif), il récupère
des infos avec parcimonie :
V2 onglet "ALPHA" cellule F5 = V1 onglet "BETA" cellule H6
V2 onglet "CHARLIE" cellule H9 = V1 onglet "DELTA" cellule L8
V2 onglet "ECHO" cellule K7 = V1 onglet "FOX-TROT" cellule A5
etc.....
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
LSteph
Bonjour,
bonne méthode amha écraser la v1 avec la v2
-- lSteph
sunburn a écrit :
Bonjour, j'ai développé un petit tableur. J'ai fais pas mal de modif sur ma V2, sans penser à ce que devenait ma V1. Bref, ça va être "pourri" si je veux faire un "patch".... Donc, je me suis dis : "Fais une macro qui extrait les données de la V1, pour les importer sur ma V2". Mais pouvez-vous m'aider, j'ai un peu de mal.
Dans mon optique, il faudrait demander à l'utilisateur de choisir le fichier de la V1. Idéalement, le dossier de recherche pourrait être le dossier mère de celui ou est ma V2 : exemple : ma V2 est dans C:DOCMOI2009, donc mon dossier de recherche à afficher est C:DOCMOI (sachant que le chemin bouge tout le temps, il faut gérer avec "thisworkbook.path" je pense, de mémoire).
Donc, comment faire pour faire que dans ma V2 (classeur actif), il récupère des infos avec parcimonie : V2 onglet "ALPHA" cellule F5 = V1 onglet "BETA" cellule H6 V2 onglet "CHARLIE" cellule H9 = V1 onglet "DELTA" cellule L8 V2 onglet "ECHO" cellule K7 = V1 onglet "FOX-TROT" cellule A5 etc.....
et cela, si possible, sans ouvrir V1.
Je vous remercie de votre aide. YANN
Bonjour,
bonne méthode amha écraser la v1 avec la v2
--
lSteph
sunburn a écrit :
Bonjour,
j'ai développé un petit tableur.
J'ai fais pas mal de modif sur ma V2, sans penser à ce que devenait ma V1.
Bref, ça va être "pourri" si je veux faire un "patch"....
Donc, je me suis dis : "Fais une macro qui extrait les données de la V1,
pour les importer sur ma V2".
Mais pouvez-vous m'aider, j'ai un peu de mal.
Dans mon optique, il faudrait demander à l'utilisateur de choisir le fichier
de la V1. Idéalement, le dossier de recherche pourrait être le dossier mère
de celui ou est ma V2 :
exemple : ma V2 est dans C:DOCMOI2009, donc mon dossier de recherche à
afficher est C:DOCMOI (sachant que le chemin bouge tout le temps, il faut
gérer avec "thisworkbook.path" je pense, de mémoire).
Donc, comment faire pour faire que dans ma V2 (classeur actif), il récupère
des infos avec parcimonie :
V2 onglet "ALPHA" cellule F5 = V1 onglet "BETA" cellule H6
V2 onglet "CHARLIE" cellule H9 = V1 onglet "DELTA" cellule L8
V2 onglet "ECHO" cellule K7 = V1 onglet "FOX-TROT" cellule A5
etc.....
Bonjour, j'ai développé un petit tableur. J'ai fais pas mal de modif sur ma V2, sans penser à ce que devenait ma V1. Bref, ça va être "pourri" si je veux faire un "patch".... Donc, je me suis dis : "Fais une macro qui extrait les données de la V1, pour les importer sur ma V2". Mais pouvez-vous m'aider, j'ai un peu de mal.
Dans mon optique, il faudrait demander à l'utilisateur de choisir le fichier de la V1. Idéalement, le dossier de recherche pourrait être le dossier mère de celui ou est ma V2 : exemple : ma V2 est dans C:DOCMOI2009, donc mon dossier de recherche à afficher est C:DOCMOI (sachant que le chemin bouge tout le temps, il faut gérer avec "thisworkbook.path" je pense, de mémoire).
Donc, comment faire pour faire que dans ma V2 (classeur actif), il récupère des infos avec parcimonie : V2 onglet "ALPHA" cellule F5 = V1 onglet "BETA" cellule H6 V2 onglet "CHARLIE" cellule H9 = V1 onglet "DELTA" cellule L8 V2 onglet "ECHO" cellule K7 = V1 onglet "FOX-TROT" cellule A5 etc.....
et cela, si possible, sans ouvrir V1.
Je vous remercie de votre aide. YANN
FFO
Salut à toi
Mets ce code dans le Thisworkbook de ton classeur V2 :
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) Onglet = InputBox("saisissez le nom de l'Onglet source", "Onglet source") Cellule = Range(InputBox("saisissez la cellule de l'Onglet source", "Cellule source")).Address(ReferenceStyle:=xlR1C1) VALEUR = ExecuteExcel4Macro("'" & ThisWorkbook.Path & "[V1.xls]" & Onglet & "'!" & Cellule) ActiveCell = VALEUR End Sub
Actualises :
[V1.xls]
du nom de ton classeur V1
Le classeur V1 fermé double cliques dans n'importe quelle cellule de n'importe quelle onglet de ton classeur V2 Une boîte de dialogue demandera le nom de l'onglet source du classeur V1 et une autre boîte de dialogue demandera la référence de la cellule source du classeur V1
Ainsi identifié la valeur de la cellule du classeur V1 sera rapportée dans la cellule active du classeur V2
Celà devrait te convenir
Dis moi !!!!!
Salut à toi
Mets ce code dans le Thisworkbook de ton classeur V2 :
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target
As Range, Cancel As Boolean)
Onglet = InputBox("saisissez le nom de l'Onglet source", "Onglet source")
Cellule = Range(InputBox("saisissez la cellule de l'Onglet source", "Cellule
source")).Address(ReferenceStyle:=xlR1C1)
VALEUR = ExecuteExcel4Macro("'" & ThisWorkbook.Path & "[V1.xls]" & Onglet &
"'!" & Cellule)
ActiveCell = VALEUR
End Sub
Actualises :
[V1.xls]
du nom de ton classeur V1
Le classeur V1 fermé double cliques dans n'importe quelle cellule de
n'importe quelle onglet de ton classeur V2
Une boîte de dialogue demandera le nom de l'onglet source du classeur V1 et
une autre boîte de dialogue demandera la référence de la cellule source du
classeur V1
Ainsi identifié la valeur de la cellule du classeur V1 sera rapportée dans
la cellule active du classeur V2
Mets ce code dans le Thisworkbook de ton classeur V2 :
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) Onglet = InputBox("saisissez le nom de l'Onglet source", "Onglet source") Cellule = Range(InputBox("saisissez la cellule de l'Onglet source", "Cellule source")).Address(ReferenceStyle:=xlR1C1) VALEUR = ExecuteExcel4Macro("'" & ThisWorkbook.Path & "[V1.xls]" & Onglet & "'!" & Cellule) ActiveCell = VALEUR End Sub
Actualises :
[V1.xls]
du nom de ton classeur V1
Le classeur V1 fermé double cliques dans n'importe quelle cellule de n'importe quelle onglet de ton classeur V2 Une boîte de dialogue demandera le nom de l'onglet source du classeur V1 et une autre boîte de dialogue demandera la référence de la cellule source du classeur V1
Ainsi identifié la valeur de la cellule du classeur V1 sera rapportée dans la cellule active du classeur V2
Celà devrait te convenir
Dis moi !!!!!
sunburn
Salut FFO, en fait, ce que je cherche, c'est a faire une macro avec une seule manip pour l'utilisateur : il doit uniquement sélectionner le fichier qu'il considère comme V1. ensuite, les copies d'informations de la V1 vers la V2, je dois les inscrire dans la macro. Comme ça, l'utilisateur n'est pas perturbé par des messages ou autres. comment puis-je faire ? Merci YANN
"FFO" a écrit :
Salut à toi
Mets ce code dans le Thisworkbook de ton classeur V2 :
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) Onglet = InputBox("saisissez le nom de l'Onglet source", "Onglet source") Cellule = Range(InputBox("saisissez la cellule de l'Onglet source", "Cellule source")).Address(ReferenceStyle:=xlR1C1) VALEUR = ExecuteExcel4Macro("'" & ThisWorkbook.Path & "[V1.xls]" & Onglet & "'!" & Cellule) ActiveCell = VALEUR End Sub
Actualises :
[V1.xls]
du nom de ton classeur V1
Le classeur V1 fermé double cliques dans n'importe quelle cellule de n'importe quelle onglet de ton classeur V2 Une boîte de dialogue demandera le nom de l'onglet source du classeur V1 et une autre boîte de dialogue demandera la référence de la cellule source du classeur V1
Ainsi identifié la valeur de la cellule du classeur V1 sera rapportée dans la cellule active du classeur V2
Celà devrait te convenir
Dis moi !!!!!
Salut FFO,
en fait, ce que je cherche, c'est a faire une macro avec une seule manip
pour l'utilisateur : il doit uniquement sélectionner le fichier qu'il
considère comme V1.
ensuite, les copies d'informations de la V1 vers la V2, je dois les inscrire
dans la macro. Comme ça, l'utilisateur n'est pas perturbé par des messages ou
autres.
comment puis-je faire ?
Merci
YANN
"FFO" a écrit :
Salut à toi
Mets ce code dans le Thisworkbook de ton classeur V2 :
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target
As Range, Cancel As Boolean)
Onglet = InputBox("saisissez le nom de l'Onglet source", "Onglet source")
Cellule = Range(InputBox("saisissez la cellule de l'Onglet source", "Cellule
source")).Address(ReferenceStyle:=xlR1C1)
VALEUR = ExecuteExcel4Macro("'" & ThisWorkbook.Path & "[V1.xls]" & Onglet &
"'!" & Cellule)
ActiveCell = VALEUR
End Sub
Actualises :
[V1.xls]
du nom de ton classeur V1
Le classeur V1 fermé double cliques dans n'importe quelle cellule de
n'importe quelle onglet de ton classeur V2
Une boîte de dialogue demandera le nom de l'onglet source du classeur V1 et
une autre boîte de dialogue demandera la référence de la cellule source du
classeur V1
Ainsi identifié la valeur de la cellule du classeur V1 sera rapportée dans
la cellule active du classeur V2
Salut FFO, en fait, ce que je cherche, c'est a faire une macro avec une seule manip pour l'utilisateur : il doit uniquement sélectionner le fichier qu'il considère comme V1. ensuite, les copies d'informations de la V1 vers la V2, je dois les inscrire dans la macro. Comme ça, l'utilisateur n'est pas perturbé par des messages ou autres. comment puis-je faire ? Merci YANN
"FFO" a écrit :
Salut à toi
Mets ce code dans le Thisworkbook de ton classeur V2 :
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) Onglet = InputBox("saisissez le nom de l'Onglet source", "Onglet source") Cellule = Range(InputBox("saisissez la cellule de l'Onglet source", "Cellule source")).Address(ReferenceStyle:=xlR1C1) VALEUR = ExecuteExcel4Macro("'" & ThisWorkbook.Path & "[V1.xls]" & Onglet & "'!" & Cellule) ActiveCell = VALEUR End Sub
Actualises :
[V1.xls]
du nom de ton classeur V1
Le classeur V1 fermé double cliques dans n'importe quelle cellule de n'importe quelle onglet de ton classeur V2 Une boîte de dialogue demandera le nom de l'onglet source du classeur V1 et une autre boîte de dialogue demandera la référence de la cellule source du classeur V1
Ainsi identifié la valeur de la cellule du classeur V1 sera rapportée dans la cellule active du classeur V2
Celà devrait te convenir
Dis moi !!!!!
MichDenis
Bonjour Sunburn,
Il n'y a pas de solution magique à ta problématique. Chaque cellule se retrouve dans une feuille particulière ...
Voici une fonction publiée par John Walkenbach Récupère la valeur d'une cellule dans un classeur fermé.
'------------------------------------------- Sub Test() Dim Chemin As String, Fichier As String Dim Feuille As String, Adr As String
'Si tu préfères tu peux utiliser cette syntaxe : 'Tu inscris en dur, le nom de la feuille et l'adresse de la cellule à récupérer. Worksheets("NomDeLaFeuille").Range("A2") = GetValue(Chemin, Fichier, "Feuil1", "A1") 'Et tu répètes cette ligne de code pour chacune des cellules à récupérer End Sub
'-------------------------------------------
Public Function GetValue(ByVal path, _ ByVal file, ByVal sheet, ByVal ref) As Variant
Dim Arg As String If Right(path, 1) <> "" Then path = path & "" If Dir(path & file) = "" Then GetValue = "File Not Found" Exit Function End If
"sunburn" a écrit dans le message de groupe de discussion : Bonjour, j'ai développé un petit tableur. J'ai fais pas mal de modif sur ma V2, sans penser à ce que devenait ma V1. Bref, ça va être "pourri" si je veux faire un "patch".... Donc, je me suis dis : "Fais une macro qui extrait les données de la V1, pour les importer sur ma V2". Mais pouvez-vous m'aider, j'ai un peu de mal.
Dans mon optique, il faudrait demander à l'utilisateur de choisir le fichier de la V1. Idéalement, le dossier de recherche pourrait être le dossier mère de celui ou est ma V2 : exemple : ma V2 est dans C:DOCMOI2009, donc mon dossier de recherche à afficher est C:DOCMOI (sachant que le chemin bouge tout le temps, il faut gérer avec "thisworkbook.path" je pense, de mémoire).
Donc, comment faire pour faire que dans ma V2 (classeur actif), il récupère des infos avec parcimonie : V2 onglet "ALPHA" cellule F5 = V1 onglet "BETA" cellule H6 V2 onglet "CHARLIE" cellule H9 = V1 onglet "DELTA" cellule L8 V2 onglet "ECHO" cellule K7 = V1 onglet "FOX-TROT" cellule A5 etc.....
et cela, si possible, sans ouvrir V1.
Je vous remercie de votre aide. YANN
Bonjour Sunburn,
Il n'y a pas de solution magique à ta problématique.
Chaque cellule se retrouve dans une feuille particulière ...
Voici une fonction publiée par John Walkenbach
Récupère la valeur d'une cellule dans un classeur fermé.
'-------------------------------------------
Sub Test()
Dim Chemin As String, Fichier As String
Dim Feuille As String, Adr As String
'Si tu préfères tu peux utiliser cette syntaxe :
'Tu inscris en dur, le nom de la feuille et l'adresse de la cellule à récupérer.
Worksheets("NomDeLaFeuille").Range("A2") = GetValue(Chemin, Fichier, "Feuil1", "A1")
'Et tu répètes cette ligne de code pour chacune des cellules à récupérer
End Sub
'-------------------------------------------
Public Function GetValue(ByVal path, _
ByVal file, ByVal sheet, ByVal ref) As Variant
Dim Arg As String
If Right(path, 1) <> "" Then path = path & ""
If Dir(path & file) = "" Then
GetValue = "File Not Found"
Exit Function
End If
"sunburn" <sunburn@discussions.microsoft.com> a écrit dans le message de groupe de
discussion : 23865C15-4602-4639-9B87-584B5558697E@microsoft.com...
Bonjour,
j'ai développé un petit tableur.
J'ai fais pas mal de modif sur ma V2, sans penser à ce que devenait ma V1.
Bref, ça va être "pourri" si je veux faire un "patch"....
Donc, je me suis dis : "Fais une macro qui extrait les données de la V1,
pour les importer sur ma V2".
Mais pouvez-vous m'aider, j'ai un peu de mal.
Dans mon optique, il faudrait demander à l'utilisateur de choisir le fichier
de la V1. Idéalement, le dossier de recherche pourrait être le dossier mère
de celui ou est ma V2 :
exemple : ma V2 est dans C:DOCMOI2009, donc mon dossier de recherche à
afficher est C:DOCMOI (sachant que le chemin bouge tout le temps, il faut
gérer avec "thisworkbook.path" je pense, de mémoire).
Donc, comment faire pour faire que dans ma V2 (classeur actif), il récupère
des infos avec parcimonie :
V2 onglet "ALPHA" cellule F5 = V1 onglet "BETA" cellule H6
V2 onglet "CHARLIE" cellule H9 = V1 onglet "DELTA" cellule L8
V2 onglet "ECHO" cellule K7 = V1 onglet "FOX-TROT" cellule A5
etc.....
'Si tu préfères tu peux utiliser cette syntaxe : 'Tu inscris en dur, le nom de la feuille et l'adresse de la cellule à récupérer. Worksheets("NomDeLaFeuille").Range("A2") = GetValue(Chemin, Fichier, "Feuil1", "A1") 'Et tu répètes cette ligne de code pour chacune des cellules à récupérer End Sub
'-------------------------------------------
Public Function GetValue(ByVal path, _ ByVal file, ByVal sheet, ByVal ref) As Variant
Dim Arg As String If Right(path, 1) <> "" Then path = path & "" If Dir(path & file) = "" Then GetValue = "File Not Found" Exit Function End If
"sunburn" a écrit dans le message de groupe de discussion : Bonjour, j'ai développé un petit tableur. J'ai fais pas mal de modif sur ma V2, sans penser à ce que devenait ma V1. Bref, ça va être "pourri" si je veux faire un "patch".... Donc, je me suis dis : "Fais une macro qui extrait les données de la V1, pour les importer sur ma V2". Mais pouvez-vous m'aider, j'ai un peu de mal.
Dans mon optique, il faudrait demander à l'utilisateur de choisir le fichier de la V1. Idéalement, le dossier de recherche pourrait être le dossier mère de celui ou est ma V2 : exemple : ma V2 est dans C:DOCMOI2009, donc mon dossier de recherche à afficher est C:DOCMOI (sachant que le chemin bouge tout le temps, il faut gérer avec "thisworkbook.path" je pense, de mémoire).
Donc, comment faire pour faire que dans ma V2 (classeur actif), il récupère des infos avec parcimonie : V2 onglet "ALPHA" cellule F5 = V1 onglet "BETA" cellule H6 V2 onglet "CHARLIE" cellule H9 = V1 onglet "DELTA" cellule L8 V2 onglet "ECHO" cellule K7 = V1 onglet "FOX-TROT" cellule A5 etc.....