simplifier une macro faite avec l'éditeur de macro

  • Initiateur de la discussion Initiateur de la discussion pascal21
  • 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 !

pascal21

XLDnaute Barbatruc
Code:
Sub effacer_données()


Dim reponse
reponse = MsgBox("Vous allez supprimer des données" & vbNewLine & "et sauvegarder dans les feuilles recap " & vbNewLine & "" & vbNewLine & "           VOUS CONFIRMEZ?", vbYesNo + vbExclamation, "Suppression")
If reponse = vbYes Then
 'affiche les feuilles recap masquées
   Sheets(11).Visible = True
      Sheets(12).Visible = True
      Sheets(13).Visible = True
      Sheets(14).Visible = True
      Sheets(15).Visible = True
      Sheets(16).Visible = True
      Sheets(17).Visible = True
      Sheets(18).Visible = True
      Sheets(19).Visible = True
      Sheets(20).Visible = True
 Sheets(1).Select
 'copie les données dans les feuilles recap
    Range("a4:U38").Select
    Selection.Copy
   Sheets(11).Select
   Range("A65536").End(xlUp).Offset(1, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
 
    
    Sheets(2).Select
    Range("a4:U38").Select
    Application.CutCopyMode = False
    Selection.Copy
    Worksheets(12).Select
    Range("A65536").End(xlUp).Offset(1, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    
    
    Sheets(3).Select
    Range("a4:U38").Select
    Application.CutCopyMode = False
    Selection.Copy
    Worksheets(13).Select
    Range("A65536").End(xlUp).Offset(1, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    
    Sheets(4).Select
    Range("a4:U38").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets(14).Select
    Range("A65536").End(xlUp).Offset(1, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    
    Sheets(5).Select
    Range("a4:U38").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets(15).Select
    Range("A65536").End(xlUp).Offset(1, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
   
   Sheets(6).Select
    Range("a4:U38").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets(16).Select
    Range("A65536").End(xlUp).Offset(1, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
   
    Sheets(7).Select
    Range("a4:U38").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets(17).Select
    Range("A65536").End(xlUp).Offset(1, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    
    Sheets(8).Select
    Range("a4:U38").Select
    Application.CutCopyMode = False
    Selection.Copy
    Worksheets(18).Select
    Range("A65536").End(xlUp).Offset(1, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    
   Sheets(9).Select
    Range("a4:U38").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets(19).Select
    Range("A65536").End(xlUp).Offset(1, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
   
    Sheets(10).Select
    Range("a4:U38").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets(20).Select
    Range("A65536").End(xlUp).Offset(1, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        'masque les feuilles recap
      Sheets(11).Visible = False
      Sheets(12).Visible = False
      Sheets(13).Visible = False
      Sheets(14).Visible = False
      Sheets(15).Visible = False
      Sheets(16).Visible = False
      Sheets(17).Visible = False
      Sheets(18).Visible = False
      Sheets(19).Visible = False
      Sheets(20).Visible = False
   
    'efface les données
  Sheets(1).Select
    Range("C4:K38").Select
    Selection.ClearContents
    
    Sheets(2).Select
    Range("C4:K38").Select
    Selection.ClearContents
    
    Sheets(3).Select
    Range("C4:K38").Select
    Selection.ClearContents

    Sheets(4).Select
    Range("C4:K38").Select
    Selection.ClearContents
    
    Sheets(5).Select
    Range("C4:K38").Select
    Selection.ClearContents
    
    Sheets(6).Select
    Range("C4:K38").Select
    Selection.ClearContents
    
    Sheets(7).Select
    Range("C4:K38").Select
    Selection.ClearContents
    
    Sheets(8).Select
    Range("C4:K38").Select
    Selection.ClearContents
    
    Sheets(9).Select
    Range("C4:K38").Select
    Selection.ClearContents
    
    Sheets(10).Select
    Range("C4:K38").Select
    Selection.ClearContents
    
    Range("C4").Select
    Sheets(1).Select
Else
If reponse = vbNo Then
  Exit Sub
End If
End If
End Sub
bonjour à tous
grace à l'éditeur de macro et aussi avec je que j'ai pu trouver par ci par là et aussi grace à votre aide, j'ai cette macro longue comme un jour sans pain que j'aimerais simplifier
malheureusement c'est au dessus de mes connaissances
pouvez m'aider merci
il s'agit de copier coller la même plage de cellule dans les feuilles recap et ensuite d'effacer le contenu de cette plage
je fais en fait une sauvegarde chaque mois

feuil1 dans feuil11 feuil2 --->feul12 etc.... sur 10 feuilles
 
Dernière édition:
Re : simplifier une macro faite avec l'éditeur de macro

Salut Pascal21,

Voilà ton code légèrement raccourcis 😀

Code:
Sub effacer_données()
  Dim reponse
  reponse = MsgBox("Vous allez supprimer des données" & vbNewLine & "et sauvegarder dans les feuilles recap " & vbNewLine & "" & vbNewLine & "           VOUS CONFIRMEZ?", vbYesNo + vbExclamation, "Suppression")
  If reponse = vbYes Then
   'affiche les feuilles recap masquées
    For I = 11 To 20
     Sheets(I).Visible = True
    Next I
    ' Copie les données
    For I = 1 To 10
    Sheets(I).Range("a4:U38").Copy
    Sheets(10 + I).Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial _
    Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    ' Masque les feuilles récap
    For I = 11 To 20
     Sheets(I).Visible = False
    Next I
    'efface les données
    For I = 1 To 10
      Sheets(I).Range("C4:K38").ClearContents
    Next I
    
    Sheets(1).Select
    Range("C4").Select
  ElseIf reponse = vbNo Then
    Exit Sub
  End If
End Sub

Pense à utliser les boucles For ... Next

Voilà 😉
 
Re : simplifier une macro faite avec l'éditeur de macro

bonjour pascal

sub effacer_donnee()
dim i as integer
if MsgBox("Vous allez supprimer des données" & vbNewLine & "et sauvegarder dans les feuilles recap " & vbNewLine & "" & vbNewLine & " VOUS CONFIRMEZ?", vbYesNo + vbExclamation, "Suppression")
<> vbYes Then exit sub
application.screenupdating = false
for i = 1 to 10
sheets(i+10).visible = true
sheets(i+10).select
sheets(i).range(A4:U38).copy
Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
sheets(i).range("C4:K38").clearcontents
sheets(i+10).visible = false
next i
sheets(1).select : range("C4").select
application.screenupdating = true
end sub

Excuse bruno, j'ai pas raffraichi, bonjour
 
Re : simplifier une macro faite avec l'éditeur de macro

re je n'ai pas pu resister, j'ai essayé
j'ai testé les 2 codes et j'ai une erreur "variable non définie" sur les deux
cette fois je vais au lit, y a la grande qui vient d'aller se coucher, faut que j'y aille aussi. lol!!!
 
Re : simplifier une macro faite avec l'éditeur de macro

bonjour
j'ai un message type boite de dialogue bien sur
lorsque je colle ta macro j'ai la ligne
Code:
if MsgBox("Vous allez supprimer des données" & vbNewLine & "et sauvegarder dans les feuilles recap " & vbNewLine & "" & vbNewLine & " VOUS CONFIRMEZ?", vbYesNo + vbExclamation, "Suppression")
<> vbYes Then exit sub
se colore en rouge
 
Dernière édition:
Re : simplifier une macro faite avec l'éditeur de macro

Bonjour Pascal, le fil

tu mets tout sur la même ligne, ou avec un "_" en fin de première ligne pour signaler que c'est la même instruction, comme ci dessous :

Code:
If MsgBox("Vous allez supprimer des données" & vbNewLine & "et sauvegarder dans les feuilles recap " & vbNewLine & "" _
    & vbNewLine & " VOUS CONFIRMEZ?", vbYesNo + vbExclamation, "Suppression") <> vbYes Then Exit Sub

bonne soirée
@+
 
- 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

Discussions similaires

Réponses
10
Affichages
753
Réponses
18
Affichages
531
Réponses
2
Affichages
377
Retour