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

  • Initiateur de la discussion Initiateur de la discussion bibernaute
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

B

bibernaute

Guest
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 modification par un modérateur:
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.
 
Re : petite aide sur ma première macro

cela fonctionne toujours sur la première facture, il me demande aussi un débogage et me surligne sht.select il ne me prend plus le raccourci clavier.
 
Dernière modification par un modérateur:
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 ?
 
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+
 
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 ?
 
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.
 
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+
 
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+
 
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 modification par un modérateur:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
10
Affichages
331
Réponses
16
Affichages
505
Réponses
20
Affichages
1 K
Retour