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 SubDeuxiè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 SubPour 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.