(résolue) petite aide sur ma première macro

bibernaute

XLDnaute Junior
bonjour à tous,
je viens de réaliser une macro sur un dossier "facture" comprenant une dizaine de feuilles "factures n° .....". une fois la ou les factures payées je les archive dans un autre dossier nommé "archive". je voudrais savoir s'il n'y a pas moyen de ne faire qu'une macro sur tout le dossier, car comme elle est, je dois le répéter l'opérations à chaque feuilles "facture".
Merci d'avance à tous.
 
Dernière édition:

fhoest

XLDnaute Accro
Re : petite aide sur ma première macro

RE,
a voir si j'ai bien compris ce que tu veux
Code:
Sub Macro2()
'
' Macro2 Macro
' Macro enregistrée le 16/02/2011 par famille BIRRO
'
' Touche de raccourci du clavier: Ctrl+Maj+A
'
    Dim sht As Worksheet
    For Each sht In ActiveWorkbook.Worksheets
    ActiveCell.FormulaR1C1 = "arch"
    'Sheets("Fact 1").Select
    sht.Select
    sht.Copy Before:=Workbooks("arch.xls").Sheets(1)
    Next sht
    '
    'Sheets("Fact 1").Copy Before:=Workbooks("arch.xls").Sheets(1)
End Sub
A bientôt.
 

bibernaute

XLDnaute Junior
Re : petite aide sur ma première macro

je viens de changer ton déroulement macro
Sub Macro2()
'
' Macro2 Macro
' Macro enregistrée le 16/02/2011 par famille BIRRO
'
' Touche de raccourci du clavier: Ctrl+Maj+A
'
Dim sht As Worksheet
For Each sht In ActiveWorkbook.Worksheets
ActiveCell.FormulaR1C1 = "arch"
'Sheets("Fact 1").Select
sht.Select
sht.Copy Before:=Workbooks("arch.xls").Sheets(1)
Next sht
'
'Sheets("Fact 1").Copy Before:=Workbooks("arch.xls").Sheets(1)
End Sub

par celui-ci.

Sub Macro2()
'
' Macro2 Macro
' Macro enregistrée le 16/02/2011 par famille BIRRO
'
' Touche de raccourci du clavier: Ctrl+Maj+A
'
Dim sht As Worksheet
For Each sht In ActiveWorkbook.Worksheets
ActiveCell.FormulaR1C1 = "arch"
'sheets.Select
sht.Copy Before:=Workbooks("arch.xls").Sheets(1)
Next sht
'
'Sheets("Fact 1").Copy Before:=Workbooks("arch.xls").Sheets(1)
End Sub
mais là il me prend toutes les factures est me les transfère.
une idée ?
 

fhoest

XLDnaute Accro
Re : petite aide sur ma première macro

il faut insérer une condition sur les feuille déjà archiver:
Code:
Sub Macro2()
'
' Macro2 Macro
' Macro enregistrée le 16/02/2011 par famille BIRRO
'
' Touche de raccourci du clavier: Ctrl+Maj+A
'
Dim sht As Worksheet
For Each sht In ActiveWorkbook.Worksheets
if range("z1").value=false then
ActiveCell.FormulaR1C1 = "arch"
range("z1").value=true
sht.Copy Before:=Workbooks("arch.xls").Sheets(1)
end if
Next sht
End Sub
A+
 

bibernaute

XLDnaute Junior
Re : petite aide sur ma première macro

salut fhoest
j'ai essayé et cela marche avec les deux dossiers que j'ai fait pour exemple, mais en se qui concerne mes vrais dossiers lorsque je fais la manipulation toutes mes feuilles se tranfèrent. cela ne viendrait pas des formules et d'une macro actives qui les relient entre elles ?
 

fhoest

XLDnaute Accro
Re : petite aide sur ma première macro

Bonsoir,
Non !(je ne pense pas que cela vienne des liaisons , mais en même temps je ne connais pas ce qu'elles font)
en fait on fait un test sur la cellule Z1.
Il faut mettre à jour chaque feuille déja archiver c'set a dire mettre dans la cellule Z1 TRUE si la feuille est déjà archiver puis modifier le code comme suit pour les archivages futur:
Code:
Sub Macro2()
'
' Macro2 Macro
' Macro enregistrée le 16/02/2011 par famille BIRRO
'
' Touche de raccourci du clavier: Ctrl+Maj+A
'
Dim sht As Worksheet
For Each sht In ActiveWorkbook.Worksheets
if sht.range("z1").value=false then
ActiveCell.FormulaR1C1 = "arch"
sht.range("z1").value=true
sht.Copy Before:=Workbooks("arch.xls").Sheets(1)
end if
Next sht
End Sub
A bientôt.
 

fhoest

XLDnaute Accro
Re : petite aide sur ma première macro

Bonjour,
regarde par exemple
tu inscrit dans la cellule Z1 d'une feuille qui ne doit pas se déplacer la valeur TRUE
tu lance le code puis regarde si cette feuille c'est archiver à nouveau alors qu'elle existe déjà dans l'archivage
Normalement elle ne doit pas être transférer si tu a mis la cellule Z1=TRUE
tu dois si ça fonctionne faire la même chose pour toute les feuilles qui ne doivent pas être transferer ,par la suite le code le fait tout seul c'est juste pour ce qui sont déjà créer aujourd'hui
A+
 

bibernaute

XLDnaute Junior
Re : petite aide sur ma première macro

Super fhoest,
cela fonctionne très bien. j'ai une autre question qui va te parraître peut-être con mais, ne peut-on pas mettre un autre mot que true ?
Merci beaucoup en tout cas de ton aide et j'espère vraiment que le losc sera champion cette année même si je ne suis pas vraiment pour cette équipe.
A+
 

denisbouchard

XLDnaute Junior
Re : petite aide sur ma première macro

Super fhoest,
cela fonctionne très bien. j'ai une autre question qui va te parraître peut-être con mais, ne peut-on pas mettre un autre mot que true ?
Merci beaucoup en tout cas de ton aide et j'espère vraiment que le losc sera champion cette année même si je ne suis pas vraiment pour cette équipe.
A+

Bonjour biberaute,
Oui, tu peux mettre autre chose, mais les mots true (vrai) ou false (faux) sont les mieux indiqués, en plus se sont les variables booléannes reconnues par VBA. Tu mettres vrai ou faux, des chiffres, des lettres, mais tu devras changer les variables dans ton code VBA. Si tu mets "A" dans la case "Z1", par exemple, il faudra remplacer :
if sht.range("z1").value=false then
par
if sht.range("z1").value= "A" then
denis
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
659

Statistiques des forums

Discussions
312 198
Messages
2 086 126
Membres
103 127
dernier inscrit
willwebdesign