Bonjour,
j'ai deux classeur different "test.xls" et "tient.xls"
j'ai une macro qui prend une de mes feuilles dans "test.xls" et qui me la
ramenne dans "tient.xls" mais le probleme ses que mon "tient.xls" ne se
nommera pas toujours "tient.xls" il peut aussi s'appeler tient1.xls....
nom.xls.....roger.xls..etc... Comment dire a ma macro de revenir dans le
classeur ou j'etait quelque seconde au paravant avec d'executer ma macro ?
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
Youky
Salut, nom = ActiveWorkbook.Name 'bla bla et copie Workbooks(nom).Activate
"Rick" a écrit dans le message de news:
Bonjour, j'ai deux classeur different "test.xls" et "tient.xls" j'ai une macro qui prend une de mes feuilles dans "test.xls" et qui me la ramenne dans "tient.xls" mais le probleme ses que mon "tient.xls" ne se nommera pas toujours "tient.xls" il peut aussi s'appeler tient1.xls.... nom.xls.....roger.xls..etc... Comment dire a ma macro de revenir dans le classeur ou j'etait quelque seconde au paravant avec d'executer ma macro ?
merci
Salut,
nom = ActiveWorkbook.Name
'bla bla et copie
Workbooks(nom).Activate
"Rick" <Rick@dsl.net> a écrit dans le message de news:
uh3dLZihFHA.1048@tk2msftngp13.phx.gbl...
Bonjour,
j'ai deux classeur different "test.xls" et "tient.xls"
j'ai une macro qui prend une de mes feuilles dans "test.xls" et qui me la
ramenne dans "tient.xls" mais le probleme ses que mon "tient.xls" ne se
nommera pas toujours "tient.xls" il peut aussi s'appeler tient1.xls....
nom.xls.....roger.xls..etc... Comment dire a ma macro de revenir dans le
classeur ou j'etait quelque seconde au paravant avec d'executer ma macro ?
Salut, nom = ActiveWorkbook.Name 'bla bla et copie Workbooks(nom).Activate
"Rick" a écrit dans le message de news:
Bonjour, j'ai deux classeur different "test.xls" et "tient.xls" j'ai une macro qui prend une de mes feuilles dans "test.xls" et qui me la ramenne dans "tient.xls" mais le probleme ses que mon "tient.xls" ne se nommera pas toujours "tient.xls" il peut aussi s'appeler tient1.xls.... nom.xls.....roger.xls..etc... Comment dire a ma macro de revenir dans le classeur ou j'etait quelque seconde au paravant avec d'executer ma macro ?
merci
ST
Au lieu d'utiliser le nom du classeur, tu peux utiliser le numéro d'index du classeur
Windows(1).Activate => pour activer le premier classeur ouvert
L'ordre correspond à l'ordre d'ouverture du fichier (si je ne me trompe pas)
ST
"Rick" a écrit dans le message de news:
Bonjour, j'ai deux classeur different "test.xls" et "tient.xls" j'ai une macro qui prend une de mes feuilles dans "test.xls" et qui me la ramenne dans "tient.xls" mais le probleme ses que mon "tient.xls" ne se nommera pas toujours "tient.xls" il peut aussi s'appeler tient1.xls.... nom.xls.....roger.xls..etc... Comment dire a ma macro de revenir dans le classeur ou j'etait quelque seconde au paravant avec d'executer ma macro ?
merci
Au lieu d'utiliser le nom du classeur, tu peux utiliser le numéro d'index du
classeur
Windows(1).Activate => pour activer le premier classeur ouvert
L'ordre correspond à l'ordre d'ouverture du fichier (si je ne me trompe pas)
ST
"Rick" <Rick@dsl.net> a écrit dans le message de
news:uh3dLZihFHA.1048@tk2msftngp13.phx.gbl...
Bonjour,
j'ai deux classeur different "test.xls" et "tient.xls"
j'ai une macro qui prend une de mes feuilles dans "test.xls" et qui me la
ramenne dans "tient.xls" mais le probleme ses que mon "tient.xls" ne se
nommera pas toujours "tient.xls" il peut aussi s'appeler tient1.xls....
nom.xls.....roger.xls..etc... Comment dire a ma macro de revenir dans le
classeur ou j'etait quelque seconde au paravant avec d'executer ma macro ?
Au lieu d'utiliser le nom du classeur, tu peux utiliser le numéro d'index du classeur
Windows(1).Activate => pour activer le premier classeur ouvert
L'ordre correspond à l'ordre d'ouverture du fichier (si je ne me trompe pas)
ST
"Rick" a écrit dans le message de news:
Bonjour, j'ai deux classeur different "test.xls" et "tient.xls" j'ai une macro qui prend une de mes feuilles dans "test.xls" et qui me la ramenne dans "tient.xls" mais le probleme ses que mon "tient.xls" ne se nommera pas toujours "tient.xls" il peut aussi s'appeler tient1.xls.... nom.xls.....roger.xls..etc... Comment dire a ma macro de revenir dans le classeur ou j'etait quelque seconde au paravant avec d'executer ma macro ?
merci
Rick
Good merci a toi :)
"Youky" a écrit dans le message de news:
Salut, nom = ActiveWorkbook.Name 'bla bla et copie Workbooks(nom).Activate
"Rick" a écrit dans le message de news:
Bonjour, j'ai deux classeur different "test.xls" et "tient.xls" j'ai une macro qui prend une de mes feuilles dans "test.xls" et qui me la ramenne dans "tient.xls" mais le probleme ses que mon "tient.xls" ne se nommera pas toujours "tient.xls" il peut aussi s'appeler tient1.xls.... nom.xls.....roger.xls..etc... Comment dire a ma macro de revenir dans le classeur ou j'etait quelque seconde au paravant avec d'executer ma macro ?
merci
Good
merci a toi
:)
"Youky" <bruno.jeune-nospam@wanadoo.fr> a écrit dans le message de news:
OgauyqihFHA.2156@TK2MSFTNGP14.phx.gbl...
Salut,
nom = ActiveWorkbook.Name
'bla bla et copie
Workbooks(nom).Activate
"Rick" <Rick@dsl.net> a écrit dans le message de news:
uh3dLZihFHA.1048@tk2msftngp13.phx.gbl...
Bonjour,
j'ai deux classeur different "test.xls" et "tient.xls"
j'ai une macro qui prend une de mes feuilles dans "test.xls" et qui me la
ramenne dans "tient.xls" mais le probleme ses que mon "tient.xls" ne se
nommera pas toujours "tient.xls" il peut aussi s'appeler tient1.xls....
nom.xls.....roger.xls..etc... Comment dire a ma macro de revenir dans le
classeur ou j'etait quelque seconde au paravant avec d'executer ma macro
?
Salut, nom = ActiveWorkbook.Name 'bla bla et copie Workbooks(nom).Activate
"Rick" a écrit dans le message de news:
Bonjour, j'ai deux classeur different "test.xls" et "tient.xls" j'ai une macro qui prend une de mes feuilles dans "test.xls" et qui me la ramenne dans "tient.xls" mais le probleme ses que mon "tient.xls" ne se nommera pas toujours "tient.xls" il peut aussi s'appeler tient1.xls.... nom.xls.....roger.xls..etc... Comment dire a ma macro de revenir dans le classeur ou j'etait quelque seconde au paravant avec d'executer ma macro ?
merci
PMO
Bonjour,
S'IL S'AGIT DE CLASSEURS QUI ONT ETE REFERMES ??? L'idée est d'utiliser les fichiers récents que l'on peut voir en cliquant sur menu Fichier. Si vous n'avez pas cette option faites Outils/Options onglet Général et cocher la case Liste des derniers fichiers utilisés puis mettez le nombre de votre choix pour "fichiers"
Le code suivant est à copier dans un module standard. Il fait: 1) Recherche la liste des derniers fichiers utilisés. 2) Ouvre un UserForm dans lequel une ComboBox propose de sélectionner un fichier. 3) Affiche le chemin du fichier.
Une fois obtenu le chemin du fichier vous pouvez faire votre code pour l'exploiter. A vous de faire selon votre projet.
ATTENTION faites le test sur une copie de votre classeur
********** Option Explicit Public T() Public Classeur$ '_________________________ Sub FichiersRecents() Dim R As RecentFile Dim i& Dim UF As Object Dim L As Object 'MSForms.ComboBox Dim CB As Object 'MSForms.CommandButton Dim A$ If Application.RecentFiles.Count = 0 Then Exit Sub ReDim T(1 To Application.RecentFiles.Count) For Each R In Application.RecentFiles i& = i& + 1 T(i&) = R.Path Next R On Error GoTo fin '---- Crée dynamiquement un UserForm ---- Set UF = ThisWorkbook.VBProject _ .VBComponents.Add(3) '(vbext_ct_MSForm) With UF .Properties("Caption") = _ "Sélectionnez un classeur" .Properties("Height") = 400 .Properties("Width") = 420 End With '---- Crée le bouton de fermeture ---- Set CB = UF.Designer.Controls _ .Add("forms.CommandButton.1") With CB .Caption = "OK" .Left = 170 .Top = 330 End With '---- Crée le comboBox ---- Set L = UF.Designer.Controls _ .Add("forms.ComboBox.1") '°°° Ajout du code évènementiel °°° A$ = "Sub UserForm_Initialize()" & _ vbCrLf & "With ComboBox1" & _ vbCrLf & ".List() " & "= T" & _ vbCrLf & ".Left= 10" & _ vbCrLf & ".Width= 400" & _ vbCrLf & "End With" & _ vbCrLf & "End Sub" With UF.CodeModule i& = .CountOfLines .InsertLines i& + 1, A$ End With '---- A$ = "Sub CommandButton1_Click()" & _ vbCrLf & "Classeur$ = ComboBox1.Value" & _ vbCrLf & "Unload Me" & _ vbCrLf & "End Sub" With UF.CodeModule i& = .CountOfLines .InsertLines i& + 1, A$ End With '---- Affiche le UserForm ---- VBA.UserForms.Add(UF.Name).Show '---- Détruit le UserForm ---- ThisWorkbook.VBProject.VBComponents _ .Remove UF '---- Récupère le nom du classeur --- If Classeur$ = "" Then Exit Sub '//// Vous avez identifié votre classeur //// '//// et vous pouvez l'ouvrir pour y //// '//// copier la feuille de test.xls //// '//// A vous de rajouter le code adéquat //// MsgBox Classeur$ fin: End Sub **********
Cordialement. -- PMO Patrick Morange
Bonjour, j'ai deux classeur different "test.xls" et "tient.xls" j'ai une macro qui prend une de mes feuilles dans "test.xls" et qui me la ramenne dans "tient.xls" mais le probleme ses que mon "tient.xls" ne se nommera pas toujours "tient.xls" il peut aussi s'appeler tient1.xls.... nom.xls.....roger.xls..etc... Comment dire a ma macro de revenir dans le classeur ou j'etait quelque seconde au paravant avec d'executer ma macro ?
merci
Bonjour,
S'IL S'AGIT DE CLASSEURS QUI ONT ETE REFERMES ???
L'idée est d'utiliser les fichiers récents que l'on peut voir en cliquant
sur menu Fichier.
Si vous n'avez pas cette option faites Outils/Options onglet Général et
cocher la case
Liste des derniers fichiers utilisés puis mettez le nombre de votre choix
pour "fichiers"
Le code suivant est à copier dans un module standard.
Il fait:
1) Recherche la liste des derniers fichiers utilisés.
2) Ouvre un UserForm dans lequel une ComboBox propose de sélectionner un
fichier.
3) Affiche le chemin du fichier.
Une fois obtenu le chemin du fichier vous pouvez faire votre code pour
l'exploiter.
A vous de faire selon votre projet.
ATTENTION faites le test sur une copie de votre classeur
**********
Option Explicit
Public T()
Public Classeur$
'_________________________
Sub FichiersRecents()
Dim R As RecentFile
Dim i&
Dim UF As Object
Dim L As Object 'MSForms.ComboBox
Dim CB As Object 'MSForms.CommandButton
Dim A$
If Application.RecentFiles.Count = 0 Then Exit Sub
ReDim T(1 To Application.RecentFiles.Count)
For Each R In Application.RecentFiles
i& = i& + 1
T(i&) = R.Path
Next R
On Error GoTo fin
'---- Crée dynamiquement un UserForm ----
Set UF = ThisWorkbook.VBProject _
.VBComponents.Add(3) '(vbext_ct_MSForm)
With UF
.Properties("Caption") = _
"Sélectionnez un classeur"
.Properties("Height") = 400
.Properties("Width") = 420
End With
'---- Crée le bouton de fermeture ----
Set CB = UF.Designer.Controls _
.Add("forms.CommandButton.1")
With CB
.Caption = "OK"
.Left = 170
.Top = 330
End With
'---- Crée le comboBox ----
Set L = UF.Designer.Controls _
.Add("forms.ComboBox.1")
'°°° Ajout du code évènementiel °°°
A$ = "Sub UserForm_Initialize()" & _
vbCrLf & "With ComboBox1" & _
vbCrLf & ".List() " & "= T" & _
vbCrLf & ".Left= 10" & _
vbCrLf & ".Width= 400" & _
vbCrLf & "End With" & _
vbCrLf & "End Sub"
With UF.CodeModule
i& = .CountOfLines
.InsertLines i& + 1, A$
End With
'----
A$ = "Sub CommandButton1_Click()" & _
vbCrLf & "Classeur$ = ComboBox1.Value" & _
vbCrLf & "Unload Me" & _
vbCrLf & "End Sub"
With UF.CodeModule
i& = .CountOfLines
.InsertLines i& + 1, A$
End With
'---- Affiche le UserForm ----
VBA.UserForms.Add(UF.Name).Show
'---- Détruit le UserForm ----
ThisWorkbook.VBProject.VBComponents _
.Remove UF
'---- Récupère le nom du classeur ---
If Classeur$ = "" Then Exit Sub
'//// Vous avez identifié votre classeur ////
'//// et vous pouvez l'ouvrir pour y ////
'//// copier la feuille de test.xls ////
'//// A vous de rajouter le code adéquat ////
MsgBox Classeur$
fin:
End Sub
**********
Cordialement.
--
PMO
Patrick Morange
Bonjour,
j'ai deux classeur different "test.xls" et "tient.xls"
j'ai une macro qui prend une de mes feuilles dans "test.xls" et qui me la
ramenne dans "tient.xls" mais le probleme ses que mon "tient.xls" ne se
nommera pas toujours "tient.xls" il peut aussi s'appeler tient1.xls....
nom.xls.....roger.xls..etc... Comment dire a ma macro de revenir dans le
classeur ou j'etait quelque seconde au paravant avec d'executer ma macro ?
S'IL S'AGIT DE CLASSEURS QUI ONT ETE REFERMES ??? L'idée est d'utiliser les fichiers récents que l'on peut voir en cliquant sur menu Fichier. Si vous n'avez pas cette option faites Outils/Options onglet Général et cocher la case Liste des derniers fichiers utilisés puis mettez le nombre de votre choix pour "fichiers"
Le code suivant est à copier dans un module standard. Il fait: 1) Recherche la liste des derniers fichiers utilisés. 2) Ouvre un UserForm dans lequel une ComboBox propose de sélectionner un fichier. 3) Affiche le chemin du fichier.
Une fois obtenu le chemin du fichier vous pouvez faire votre code pour l'exploiter. A vous de faire selon votre projet.
ATTENTION faites le test sur une copie de votre classeur
********** Option Explicit Public T() Public Classeur$ '_________________________ Sub FichiersRecents() Dim R As RecentFile Dim i& Dim UF As Object Dim L As Object 'MSForms.ComboBox Dim CB As Object 'MSForms.CommandButton Dim A$ If Application.RecentFiles.Count = 0 Then Exit Sub ReDim T(1 To Application.RecentFiles.Count) For Each R In Application.RecentFiles i& = i& + 1 T(i&) = R.Path Next R On Error GoTo fin '---- Crée dynamiquement un UserForm ---- Set UF = ThisWorkbook.VBProject _ .VBComponents.Add(3) '(vbext_ct_MSForm) With UF .Properties("Caption") = _ "Sélectionnez un classeur" .Properties("Height") = 400 .Properties("Width") = 420 End With '---- Crée le bouton de fermeture ---- Set CB = UF.Designer.Controls _ .Add("forms.CommandButton.1") With CB .Caption = "OK" .Left = 170 .Top = 330 End With '---- Crée le comboBox ---- Set L = UF.Designer.Controls _ .Add("forms.ComboBox.1") '°°° Ajout du code évènementiel °°° A$ = "Sub UserForm_Initialize()" & _ vbCrLf & "With ComboBox1" & _ vbCrLf & ".List() " & "= T" & _ vbCrLf & ".Left= 10" & _ vbCrLf & ".Width= 400" & _ vbCrLf & "End With" & _ vbCrLf & "End Sub" With UF.CodeModule i& = .CountOfLines .InsertLines i& + 1, A$ End With '---- A$ = "Sub CommandButton1_Click()" & _ vbCrLf & "Classeur$ = ComboBox1.Value" & _ vbCrLf & "Unload Me" & _ vbCrLf & "End Sub" With UF.CodeModule i& = .CountOfLines .InsertLines i& + 1, A$ End With '---- Affiche le UserForm ---- VBA.UserForms.Add(UF.Name).Show '---- Détruit le UserForm ---- ThisWorkbook.VBProject.VBComponents _ .Remove UF '---- Récupère le nom du classeur --- If Classeur$ = "" Then Exit Sub '//// Vous avez identifié votre classeur //// '//// et vous pouvez l'ouvrir pour y //// '//// copier la feuille de test.xls //// '//// A vous de rajouter le code adéquat //// MsgBox Classeur$ fin: End Sub **********
Cordialement. -- PMO Patrick Morange
Bonjour, j'ai deux classeur different "test.xls" et "tient.xls" j'ai une macro qui prend une de mes feuilles dans "test.xls" et qui me la ramenne dans "tient.xls" mais le probleme ses que mon "tient.xls" ne se nommera pas toujours "tient.xls" il peut aussi s'appeler tient1.xls.... nom.xls.....roger.xls..etc... Comment dire a ma macro de revenir dans le classeur ou j'etait quelque seconde au paravant avec d'executer ma macro ?
merci
Michael
Bonjour,
J'ai une question qui ressemble un peu mais je n'arrive pas a mettre en place ceci:
memoriser les feuilles actives (pas celle qui est sélectionnée) traiter plusieurs operations sur certaines feuilles réactiver ce que j'ai mémorisé
Merci de m'aider. Michael
Bonjour,
J'ai une question qui ressemble un peu mais je n'arrive pas a mettre en
place ceci:
memoriser les feuilles actives (pas celle qui est sélectionnée)
traiter plusieurs operations sur certaines feuilles
réactiver ce que j'ai mémorisé