Même macro sur plusieurs onglets

Bonjour,

J'ai besoin d'un coup de pouce pour faire marcher un fichier

Premier point :

J'ai une macro pour mettre en forme en extraction SAP. (cf. ci dessous). J'aimerais bien l'appliquer à 5 onglets en même temps.

Pour le moment, elle marche mais je dois l'appliquer manuellement onglet par onglet. Que faut-il que je modifie pour que ça marche ?

Sub mef_zmd47_ridc()

    Range("A:C,E:F,H:H,J:J,L:N").Select
    Selection.Delete

    Range("1:6,8:11").Select
    Selection.Delete

    Range("B1:I1").Select
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Font.Bold = True
    End With

    Columns("A:A").Select
    Selection.Font.Bold = True

    Range("B2").Select
    Selection.EntireRow.Insert

    Range("B2").Select
    ActiveCell.FormulaR1C1 = "=SUBSTITUTE(R[-1]C,R[-1]C,MID(R[-1]C,4,2))"

    Selection.AutoFill Destination:=Range("B2:I2"), Type:=xlFillDefault
    Range("B2:I2").Select
    Selection.Borders(xlEdgeBottom).LineStyle = xlDouble

 End Sub

Deuxième point :

Une formule me permet d'aller chercher une valeur dans un tableau à double entrée (le fameux tableau avec les données SAP et la mise en forme). Par contre, dès que j'ai appliqué la macro citée précédemment, elle ne marche plus... Que faut-il faire pour que ma formule s'applique tout le temps ?

=INDEX('ZMD47-1'!1:1048576;EQUIV(Besoins!E7;'ZMD47-1'!#REF!);EQUIV(Besoins!M6;'ZMD47-1'!#REF!))

Merci pour votre aide !

PS : Je préférerais ne pas avoir à joindre le fichier, je n'ai pas envie qu'il traîne n'importe où... J'espère que ces explications suffiront.

Même si vous n'avez des idées que pour un des deux points ça me va aussi , je suis preneuse

Bonjour Marionnette

Voici le code qui va travailler sur toutes les feuilles, à tester

Sub mef_zmd47_ridc()
  Dim Sht As Worksheet
  ' Pour chaque feuille du classeur
  For Each Sht In ThisWorkbook.Sheets
    ' Pour éviter certaines feuilles 'si nécesssaire)
    If InStr(1, "NomFeuilleAnePasTraiter1,NomFeuilleAnePasTraiter1", Sht.Name) > 0 Then GoTo SuiteSht
    ' Avec la feuille
    With Sht
      .Range("A:C,E:F,H:H,J:J,L:N").Delete
      .Range("1:6,8:11").Delete
      With .Range("B1:I1")
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Font.Bold = True
      End With
      .Columns("A:A").Font.Bold = True
      .Range("B2").EntireRow.Insert
      With .Range("B2")
        .FormulaR1C1 = "=SUBSTITUTE(R[-1]C,R[-1]C,MID(R[-1]C,4,2))"
        .AutoFill Destination:=Range("B2:I2"), Type:=xlFillDefault
      End With
      .Range("B2:I2").Borders(xlEdgeBottom).LineStyle = xlDouble
    End With
SuiteSht:
  Next Sht
End Sub

Pour ce qui concerne la formule, c'est normal puisque les cellules sont supprimée lors de la mise en forme.

Il faut donc utiliser la fonction DECALER() à partir d'une cellule qui n'est jamais supprimée

@+

Bonjour,

Merci pour ces précisions ! Je vais tester ça.

Rechercher des sujets similaires à "meme macro onglets"