Bjr j'ai un enorme probl=E8me :=20
J'ai 2 fichiers excel :
- un premier qui historise les valeurs
- un second qui sert =E0 extraire les donn=E9es de=20
l'historique et qui les traites.
Dans le fichier historique j'ai 40 feuilles avec une ligne=20
de valeurs XXX
Dans le fichier extraction je voudrais :=20
-Ce fichier doit incorporer les m=EAme feuilles que le=20
fichier historique (=E7a c'est d=E9j=E0 fait), mais je voudrais=20
que si je cre=E9 une nouvelle feuille dans historique, que=20
ma macro dans le fichier extraction mette automatiquement=20
=E0 jour un cr=E9e aussi une feuille avec le m=EAme nom dans le=20
fichier extraction (idem si je supprime une feuille dans=20
historique, je voudrais que =E7a la supprime auto dans=20
extraction).
- Pouvoir copier une ligne (identique dans chaque feuille=20
sauf une nomm=E9e liste) des feuilles du fichier historique=20
vers les feuilles qui ont le m=EAme nom dans le fichier=20
exctration. Bon cette copie doit se faire de ligne en=20
colonne mais =E7a c'est ok.
Donc pour chaque feuille d'historique je voudrais qu'il=20
copie et mette =E0 jour les feuilles du m=EAme noms dans=20
extraction.
Franchement si qq'un y arrive je serais echant=E9 et tr=E8s=20
reconnaissant, car l=E0 je suis devant un mur et =E9tant un=20
poil d=E9butant j'ai du mal, je mets des codes bout =E0 bout=20
mais sans succ=E8s.
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
Michel HOLDERITH
Salut, un debut de piste pour la creation et la suppression de tes feuilles :
Sub feuille() Windows("fichier1.xls").Activate Sheets.Select Windows("fichier2.xls").Activate Sheets.Select If Windows("fichier1.xls").SelectedSheets.Count > Windows("fichier2.xls").SelectedSheets.Count Then Windows("fichier1.xls").Activate For P = 1 To Sheets.Count Windows("fichier1.xls").Activate On Error Resume Next Sheets(P).Select Windows("fichier2.xls").Activate For P2 = 1 To Sheets.Count Sheets(P2).Select If Windows("fichier1.xls").ActiveSheet.Name Windows("fichier2.xls").ActiveSheet.Name Then BOUCLE = "OK" GoTo YO Else BOUCLE = "PAS OK" End If Next P2 If BOUCLE = "PAS OK" Then 'SUPPRESSION FEUILLE Windows("fichier1.xls").Activate Application.DisplayAlerts = False ActiveWindow.SelectedSheets.Delete End If YO: Next P Else Windows("fichier2.xls").Activate For P3 = 1 To Sheets.Count Windows("fichier2.xls").Activate On Error Resume Next Sheets(P3).Select Windows("fichier1.xls").Activate For PP = 1 To Sheets.Count Sheets(PP).Select If Windows("fichier2.xls").ActiveSheet.Name Windows("fichier1.xls").ActiveSheet.Name Then BOUCLE = "OK" GoTo ZO Else BOUCLE = "PAS OK" End If Next PP If BOUCLE = "PAS OK" Then 'CREATION FEUILLE Sheets.Add Windows("fichier1.xls").ActiveSheet.Name Windows("fichier2.xls").ActiveSheet.Name End If ZO: Next P3 End If End Sub
@+ Michel.
"Mesa" wrote in message news:03d601c3a90f$a2a287b0$ Bjr j'ai un enorme problème : J'ai 2 fichiers excel : - un premier qui historise les valeurs - un second qui sert à extraire les données de l'historique et qui les traites.
Dans le fichier historique j'ai 40 feuilles avec une ligne de valeurs XXX
Dans le fichier extraction je voudrais :
-Ce fichier doit incorporer les même feuilles que le fichier historique (ça c'est déjà fait), mais je voudrais que si je creé une nouvelle feuille dans historique, que ma macro dans le fichier extraction mette automatiquement à jour un crée aussi une feuille avec le même nom dans le fichier extraction (idem si je supprime une feuille dans historique, je voudrais que ça la supprime auto dans extraction).
- Pouvoir copier une ligne (identique dans chaque feuille sauf une nommée liste) des feuilles du fichier historique vers les feuilles qui ont le même nom dans le fichier exctration. Bon cette copie doit se faire de ligne en colonne mais ça c'est ok. Donc pour chaque feuille d'historique je voudrais qu'il copie et mette à jour les feuilles du même noms dans extraction.
Franchement si qq'un y arrive je serais echanté et très reconnaissant, car là je suis devant un mur et étant un poil débutant j'ai du mal, je mets des codes bout à bout mais sans succès.
Merci d'avance Eric
Salut,
un debut de piste pour la creation et la suppression de tes feuilles :
Sub feuille()
Windows("fichier1.xls").Activate
Sheets.Select
Windows("fichier2.xls").Activate
Sheets.Select
If Windows("fichier1.xls").SelectedSheets.Count >
Windows("fichier2.xls").SelectedSheets.Count Then
Windows("fichier1.xls").Activate
For P = 1 To Sheets.Count
Windows("fichier1.xls").Activate
On Error Resume Next
Sheets(P).Select
Windows("fichier2.xls").Activate
For P2 = 1 To Sheets.Count
Sheets(P2).Select
If Windows("fichier1.xls").ActiveSheet.Name Windows("fichier2.xls").ActiveSheet.Name Then
BOUCLE = "OK"
GoTo YO
Else
BOUCLE = "PAS OK"
End If
Next P2
If BOUCLE = "PAS OK" Then
'SUPPRESSION FEUILLE
Windows("fichier1.xls").Activate
Application.DisplayAlerts = False
ActiveWindow.SelectedSheets.Delete
End If
YO:
Next P
Else
Windows("fichier2.xls").Activate
For P3 = 1 To Sheets.Count
Windows("fichier2.xls").Activate
On Error Resume Next
Sheets(P3).Select
Windows("fichier1.xls").Activate
For PP = 1 To Sheets.Count
Sheets(PP).Select
If Windows("fichier2.xls").ActiveSheet.Name Windows("fichier1.xls").ActiveSheet.Name Then
BOUCLE = "OK"
GoTo ZO
Else
BOUCLE = "PAS OK"
End If
Next PP
If BOUCLE = "PAS OK" Then
'CREATION FEUILLE
Sheets.Add
Windows("fichier1.xls").ActiveSheet.Name Windows("fichier2.xls").ActiveSheet.Name
End If
ZO:
Next P3
End If
End Sub
@+
Michel.
"Mesa" <lettrefi@hotmail.com> wrote in message
news:03d601c3a90f$a2a287b0$a001280a@phx.gbl...
Bjr j'ai un enorme problème :
J'ai 2 fichiers excel :
- un premier qui historise les valeurs
- un second qui sert à extraire les données de
l'historique et qui les traites.
Dans le fichier historique j'ai 40 feuilles avec une ligne
de valeurs XXX
Dans le fichier extraction je voudrais :
-Ce fichier doit incorporer les même feuilles que le
fichier historique (ça c'est déjà fait), mais je voudrais
que si je creé une nouvelle feuille dans historique, que
ma macro dans le fichier extraction mette automatiquement
à jour un crée aussi une feuille avec le même nom dans le
fichier extraction (idem si je supprime une feuille dans
historique, je voudrais que ça la supprime auto dans
extraction).
- Pouvoir copier une ligne (identique dans chaque feuille
sauf une nommée liste) des feuilles du fichier historique
vers les feuilles qui ont le même nom dans le fichier
exctration. Bon cette copie doit se faire de ligne en
colonne mais ça c'est ok.
Donc pour chaque feuille d'historique je voudrais qu'il
copie et mette à jour les feuilles du même noms dans
extraction.
Franchement si qq'un y arrive je serais echanté et très
reconnaissant, car là je suis devant un mur et étant un
poil débutant j'ai du mal, je mets des codes bout à bout
mais sans succès.
Salut, un debut de piste pour la creation et la suppression de tes feuilles :
Sub feuille() Windows("fichier1.xls").Activate Sheets.Select Windows("fichier2.xls").Activate Sheets.Select If Windows("fichier1.xls").SelectedSheets.Count > Windows("fichier2.xls").SelectedSheets.Count Then Windows("fichier1.xls").Activate For P = 1 To Sheets.Count Windows("fichier1.xls").Activate On Error Resume Next Sheets(P).Select Windows("fichier2.xls").Activate For P2 = 1 To Sheets.Count Sheets(P2).Select If Windows("fichier1.xls").ActiveSheet.Name Windows("fichier2.xls").ActiveSheet.Name Then BOUCLE = "OK" GoTo YO Else BOUCLE = "PAS OK" End If Next P2 If BOUCLE = "PAS OK" Then 'SUPPRESSION FEUILLE Windows("fichier1.xls").Activate Application.DisplayAlerts = False ActiveWindow.SelectedSheets.Delete End If YO: Next P Else Windows("fichier2.xls").Activate For P3 = 1 To Sheets.Count Windows("fichier2.xls").Activate On Error Resume Next Sheets(P3).Select Windows("fichier1.xls").Activate For PP = 1 To Sheets.Count Sheets(PP).Select If Windows("fichier2.xls").ActiveSheet.Name Windows("fichier1.xls").ActiveSheet.Name Then BOUCLE = "OK" GoTo ZO Else BOUCLE = "PAS OK" End If Next PP If BOUCLE = "PAS OK" Then 'CREATION FEUILLE Sheets.Add Windows("fichier1.xls").ActiveSheet.Name Windows("fichier2.xls").ActiveSheet.Name End If ZO: Next P3 End If End Sub
@+ Michel.
"Mesa" wrote in message news:03d601c3a90f$a2a287b0$ Bjr j'ai un enorme problème : J'ai 2 fichiers excel : - un premier qui historise les valeurs - un second qui sert à extraire les données de l'historique et qui les traites.
Dans le fichier historique j'ai 40 feuilles avec une ligne de valeurs XXX
Dans le fichier extraction je voudrais :
-Ce fichier doit incorporer les même feuilles que le fichier historique (ça c'est déjà fait), mais je voudrais que si je creé une nouvelle feuille dans historique, que ma macro dans le fichier extraction mette automatiquement à jour un crée aussi une feuille avec le même nom dans le fichier extraction (idem si je supprime une feuille dans historique, je voudrais que ça la supprime auto dans extraction).
- Pouvoir copier une ligne (identique dans chaque feuille sauf une nommée liste) des feuilles du fichier historique vers les feuilles qui ont le même nom dans le fichier exctration. Bon cette copie doit se faire de ligne en colonne mais ça c'est ok. Donc pour chaque feuille d'historique je voudrais qu'il copie et mette à jour les feuilles du même noms dans extraction.
Franchement si qq'un y arrive je serais echanté et très reconnaissant, car là je suis devant un mur et étant un poil débutant j'ai du mal, je mets des codes bout à bout mais sans succès.
Merci d'avance Eric
J'ai légèrement modifié ton code qui ne fonctionne toujours pas pourrais tu m'aider histoire d'améliorer tout ça. Voici les modifs :
Sub feuille() test.xls.Activate Sheets.Select testextra.xls.Activate Sheets.Select If test.xls.SelectedSheets.Count Then If tetestextra.xls.SelectedSheets.Count Then test.xls.Activate For P = 1 To Sheets.Count test.xls.Activate On Error Resume Next SheetsP.Select testextra.xls.Activate For P2 = 1 To Sheets.Count SheetsP2.Select If test.xls.ActiveSheet.Name = testextra.xls.ActiveSheet.Name Then BOUCLE = "OK" GoTo YO Else BOUCLE = "PAS OK" End If Next P2 If BOUCLE = "PAS OK" Then 'SUPPRESSION feuille Windowsfichier1.xls.Activate Application.DisplayAlerts = False ActiveWindow.SelectedSheets.Delete End If YO: Next P Else Windowsfichier2.xls.Activate For P3 = 1 To Sheets.Count Windowsfichier2.xls.Activate On Error Resume Next SheetsP3.Select Windowsfichier1.xls.Activate For PP = 1 To Sheets.Count SheetsPP.Select If test.xls.ActiveSheet.Name = testextra.xls.ActiveSheet.Name Then BOUCLE = "OK" GoTo ZO Else BOUCLE = "PAS OK" End If Next PP If BOUCLE = "PAS OK" Then 'CREATION feuille Sheets.Add If test.xls.ActiveSheet.Name = testextra.xls.ActiveSheet.Name Then
End If ZO: Next P3 End If End Sub
J'ai légèrement modifié ton code qui ne fonctionne
toujours pas pourrais tu m'aider histoire d'améliorer tout
ça. Voici les modifs :
Sub feuille()
test.xls.Activate
Sheets.Select
testextra.xls.Activate
Sheets.Select
If test.xls.SelectedSheets.Count Then
If tetestextra.xls.SelectedSheets.Count Then
test.xls.Activate
For P = 1 To Sheets.Count
test.xls.Activate
On Error Resume Next
SheetsP.Select
testextra.xls.Activate
For P2 = 1 To Sheets.Count
SheetsP2.Select
If test.xls.ActiveSheet.Name =
testextra.xls.ActiveSheet.Name Then
BOUCLE = "OK"
GoTo YO
Else
BOUCLE = "PAS OK"
End If
Next P2
If BOUCLE = "PAS OK" Then
'SUPPRESSION feuille
Windowsfichier1.xls.Activate
Application.DisplayAlerts = False
ActiveWindow.SelectedSheets.Delete
End If
YO:
Next P
Else
Windowsfichier2.xls.Activate
For P3 = 1 To Sheets.Count
Windowsfichier2.xls.Activate
On Error Resume Next
SheetsP3.Select
Windowsfichier1.xls.Activate
For PP = 1 To Sheets.Count
SheetsPP.Select
If test.xls.ActiveSheet.Name =
testextra.xls.ActiveSheet.Name Then
BOUCLE = "OK"
GoTo ZO
Else
BOUCLE = "PAS OK"
End If
Next PP
If BOUCLE = "PAS OK" Then
'CREATION feuille
Sheets.Add
If test.xls.ActiveSheet.Name =
testextra.xls.ActiveSheet.Name Then
J'ai légèrement modifié ton code qui ne fonctionne toujours pas pourrais tu m'aider histoire d'améliorer tout ça. Voici les modifs :
Sub feuille() test.xls.Activate Sheets.Select testextra.xls.Activate Sheets.Select If test.xls.SelectedSheets.Count Then If tetestextra.xls.SelectedSheets.Count Then test.xls.Activate For P = 1 To Sheets.Count test.xls.Activate On Error Resume Next SheetsP.Select testextra.xls.Activate For P2 = 1 To Sheets.Count SheetsP2.Select If test.xls.ActiveSheet.Name = testextra.xls.ActiveSheet.Name Then BOUCLE = "OK" GoTo YO Else BOUCLE = "PAS OK" End If Next P2 If BOUCLE = "PAS OK" Then 'SUPPRESSION feuille Windowsfichier1.xls.Activate Application.DisplayAlerts = False ActiveWindow.SelectedSheets.Delete End If YO: Next P Else Windowsfichier2.xls.Activate For P3 = 1 To Sheets.Count Windowsfichier2.xls.Activate On Error Resume Next SheetsP3.Select Windowsfichier1.xls.Activate For PP = 1 To Sheets.Count SheetsPP.Select If test.xls.ActiveSheet.Name = testextra.xls.ActiveSheet.Name Then BOUCLE = "OK" GoTo ZO Else BOUCLE = "PAS OK" End If Next PP If BOUCLE = "PAS OK" Then 'CREATION feuille Sheets.Add If test.xls.ActiveSheet.Name = testextra.xls.ActiveSheet.Name Then
End If ZO: Next P3 End If End Sub
Michel HOLDERITH
Salut,
essaies de remplacer :
test.xls par Windows("test.xls")
@+ Michel. P.S.: J'ai teste chez moi ca marche.......
wrote in message news:116701c3a929$ecb453a0$ J'ai légèrement modifié ton code qui ne fonctionne toujours pas pourrais tu m'aider histoire d'améliorer tout ça. Voici les modifs :
Sub feuille() test.xls.Activate Sheets.Select testextra.xls.Activate Sheets.Select If test.xls.SelectedSheets.Count Then If tetestextra.xls.SelectedSheets.Count Then test.xls.Activate For P = 1 To Sheets.Count test.xls.Activate On Error Resume Next SheetsP.Select testextra.xls.Activate For P2 = 1 To Sheets.Count SheetsP2.Select If test.xls.ActiveSheet.Name testextra.xls.ActiveSheet.Name Then BOUCLE = "OK" GoTo YO Else BOUCLE = "PAS OK" End If Next P2 If BOUCLE = "PAS OK" Then 'SUPPRESSION feuille Windowsfichier1.xls.Activate Application.DisplayAlerts = False ActiveWindow.SelectedSheets.Delete End If YO: Next P Else Windowsfichier2.xls.Activate For P3 = 1 To Sheets.Count Windowsfichier2.xls.Activate On Error Resume Next SheetsP3.Select Windowsfichier1.xls.Activate For PP = 1 To Sheets.Count SheetsPP.Select If test.xls.ActiveSheet.Name testextra.xls.ActiveSheet.Name Then BOUCLE = "OK" GoTo ZO Else BOUCLE = "PAS OK" End If Next PP If BOUCLE = "PAS OK" Then 'CREATION feuille Sheets.Add If test.xls.ActiveSheet.Name testextra.xls.ActiveSheet.Name Then
End If ZO: Next P3 End If End Sub
Salut,
essaies de remplacer :
test.xls par Windows("test.xls")
@+
Michel.
P.S.: J'ai teste chez moi ca marche.......
<anonymous@discussions.microsoft.com> wrote in message
news:116701c3a929$ecb453a0$a101280a@phx.gbl...
J'ai légèrement modifié ton code qui ne fonctionne
toujours pas pourrais tu m'aider histoire d'améliorer tout
ça. Voici les modifs :
Sub feuille()
test.xls.Activate
Sheets.Select
testextra.xls.Activate
Sheets.Select
If test.xls.SelectedSheets.Count Then
If tetestextra.xls.SelectedSheets.Count Then
test.xls.Activate
For P = 1 To Sheets.Count
test.xls.Activate
On Error Resume Next
SheetsP.Select
testextra.xls.Activate
For P2 = 1 To Sheets.Count
SheetsP2.Select
If test.xls.ActiveSheet.Name testextra.xls.ActiveSheet.Name Then
BOUCLE = "OK"
GoTo YO
Else
BOUCLE = "PAS OK"
End If
Next P2
If BOUCLE = "PAS OK" Then
'SUPPRESSION feuille
Windowsfichier1.xls.Activate
Application.DisplayAlerts = False
ActiveWindow.SelectedSheets.Delete
End If
YO:
Next P
Else
Windowsfichier2.xls.Activate
For P3 = 1 To Sheets.Count
Windowsfichier2.xls.Activate
On Error Resume Next
SheetsP3.Select
Windowsfichier1.xls.Activate
For PP = 1 To Sheets.Count
SheetsPP.Select
If test.xls.ActiveSheet.Name testextra.xls.ActiveSheet.Name Then
BOUCLE = "OK"
GoTo ZO
Else
BOUCLE = "PAS OK"
End If
Next PP
If BOUCLE = "PAS OK" Then
'CREATION feuille
Sheets.Add
If test.xls.ActiveSheet.Name testextra.xls.ActiveSheet.Name Then
@+ Michel. P.S.: J'ai teste chez moi ca marche.......
wrote in message news:116701c3a929$ecb453a0$ J'ai légèrement modifié ton code qui ne fonctionne toujours pas pourrais tu m'aider histoire d'améliorer tout ça. Voici les modifs :
Sub feuille() test.xls.Activate Sheets.Select testextra.xls.Activate Sheets.Select If test.xls.SelectedSheets.Count Then If tetestextra.xls.SelectedSheets.Count Then test.xls.Activate For P = 1 To Sheets.Count test.xls.Activate On Error Resume Next SheetsP.Select testextra.xls.Activate For P2 = 1 To Sheets.Count SheetsP2.Select If test.xls.ActiveSheet.Name testextra.xls.ActiveSheet.Name Then BOUCLE = "OK" GoTo YO Else BOUCLE = "PAS OK" End If Next P2 If BOUCLE = "PAS OK" Then 'SUPPRESSION feuille Windowsfichier1.xls.Activate Application.DisplayAlerts = False ActiveWindow.SelectedSheets.Delete End If YO: Next P Else Windowsfichier2.xls.Activate For P3 = 1 To Sheets.Count Windowsfichier2.xls.Activate On Error Resume Next SheetsP3.Select Windowsfichier1.xls.Activate For PP = 1 To Sheets.Count SheetsPP.Select If test.xls.ActiveSheet.Name testextra.xls.ActiveSheet.Name Then BOUCLE = "OK" GoTo ZO Else BOUCLE = "PAS OK" End If Next PP If BOUCLE = "PAS OK" Then 'CREATION feuille Sheets.Add If test.xls.ActiveSheet.Name testextra.xls.ActiveSheet.Name Then
Normal que ca ne marche plus si tu changes tout........... lol :o)
ton changement ne veut rien dire...... desole.... @+ Michel.
wrote in message news:232801c3a930$15305800$ Ca foire au niveau du new P3 à la fin ... donc même en changeant le nom du fichier je pense pas que ça fonctionne mieux. @+ Eric
re,
c'est quoi ca :
Sheets.Add
If test.xls.ActiveSheet.Name testextra.xls.ActiveSheet.Name Then
Normal que ca ne marche plus si tu changes tout........... lol :o)
ton changement ne veut rien dire...... desole....
@+
Michel.
<anonymous@discussions.microsoft.com> wrote in message
news:232801c3a930$15305800$a601280a@phx.gbl...
Ca foire au niveau du new P3 à la fin ... donc même en
changeant le nom du fichier je pense pas que ça fonctionne
mieux.
@+ Eric
Normal que ca ne marche plus si tu changes tout........... lol :o)
ton changement ne veut rien dire...... desole.... @+ Michel.
wrote in message news:232801c3a930$15305800$ Ca foire au niveau du new P3 à la fin ... donc même en changeant le nom du fichier je pense pas que ça fonctionne mieux. @+ Eric
Michel HOLDERITH
Je rigoles... mais bon..... franchement essayes de creer 2 fichiers vierges. tu les sauves l'un "fichier1.xls" et l'autre "fichier2.xls" laisses les ouvert, puis inseres mon code dans un module du fichier1.xls apres amuses toi a creer ou supprimer des feuilles dans le fichier1.xls et dans le fichier2.xls ou/et les deux en meme temps. Il ne faut pas aller trop vite non plus..... @+ Michel. sinon donne l'exemple dans ma BAL.
wrote in message news:232801c3a930$15305800$ Ca foire au niveau du new P3 à la fin ... donc même en changeant le nom du fichier je pense pas que ça fonctionne mieux. @+ Eric
Je rigoles... mais bon.....
franchement essayes de creer 2 fichiers vierges.
tu les sauves l'un "fichier1.xls" et l'autre "fichier2.xls"
laisses les ouvert, puis inseres mon code dans un module du fichier1.xls
apres amuses toi a creer ou supprimer des feuilles dans le fichier1.xls et
dans le fichier2.xls ou/et les deux en meme temps.
Il ne faut pas aller trop vite non plus.....
@+
Michel.
sinon donne l'exemple dans ma BAL.
<anonymous@discussions.microsoft.com> wrote in message
news:232801c3a930$15305800$a601280a@phx.gbl...
Ca foire au niveau du new P3 à la fin ... donc même en
changeant le nom du fichier je pense pas que ça fonctionne
mieux.
@+ Eric
Je rigoles... mais bon..... franchement essayes de creer 2 fichiers vierges. tu les sauves l'un "fichier1.xls" et l'autre "fichier2.xls" laisses les ouvert, puis inseres mon code dans un module du fichier1.xls apres amuses toi a creer ou supprimer des feuilles dans le fichier1.xls et dans le fichier2.xls ou/et les deux en meme temps. Il ne faut pas aller trop vite non plus..... @+ Michel. sinon donne l'exemple dans ma BAL.
wrote in message news:232801c3a930$15305800$ Ca foire au niveau du new P3 à la fin ... donc même en changeant le nom du fichier je pense pas que ça fonctionne mieux. @+ Eric