Macro avec visual basic incomplete

juleboss - 6 déc. 2012 à 09:41
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 6 déc. 2012 à 16:22
Bonjour,
Je viens vers vous, car je n'arrive plus à compléter ma macro.
Pour faire ma macro faut faire un copier/coller de l'onglet "nomenclature pour essai" dans l'onglet vierge et appuyer sur le bouton mise en forme.
Jusque la tout ce passe bien sauf deux points :
1. je souhaite que les lignes vides en jaune n'y soit plus
2. que les lignes avec .1 soit en gras

Sachant que l'onglet nomenclature essai n'est pas toujours le même, il peut varier de plus ou moins de ligne.

Merci par avance de votre aide pour m'aider à régler ce soucis.

Julien.

PS : peut vous envoye le fichier excel? si oui commnt fait-on, merci.

2 réponses

Je joint mon code actuel :

Private Sub CommandButton3_Click()

Range("E2:E5").Copy Range("F2")
Columns("E:E").Delete Shift:=xlToLeft
Rows("4:4").Delete Shift:=xlUp
Rows("10:10").Delete Shift:=xlUp
Columns("A:A").Delete Shift:=xlToLeft

For d = 3 To 3
If Cells(d, 3).Value "" Then Cells(d, 3).Value "ARTICLE"
Next d
For d = 4 To 4
If Cells(d, 3).Value "" Then Cells(d, 3).Value "DESIGNATION"
Next d
For d = 9 To 9
If Cells(d, 7).Value "" Then Cells(d, 7).Value "OP"
Next d

Range("C3:D4").Select
Selection.Font.Bold = True
Range("A9:G9").Select
Selection.Font.Bold = True

Rows("9:9").Select
Selection.AutoFilter
ActiveSheet.Range("$A$9:$L$100").AutoFilter Field:=1, Criteria1:=".1"
Range("A10:G1000").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("G61").Select
ActiveSheet.Range("$A$9:$L$1000").AutoFilter Field:=1, Criteria1:=".1"
ActiveSheet.Range("$A$9:$L$1000").AutoFilter Field:=1

Range("A600:G1000").Select
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With

Columns("A:G").EntireColumn.AutoFit

Rows("5:7").Delete Shift:=xlUp
Rows("1:2").Delete Shift:=xlUp

Range("A600:G1000").Select
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With

Sheets("Vierge").Select
Sheets("Vierge").Copy Before:=Sheets(2)
Sheets("Vierge (2)").Select
ActiveSheet.Shapes("CommandButton3").Select
Selection.Cut

Sheets("Vierge").Select
Cells.Select
Selection.Delete Shift:=xlUp
Range("F11").Select

End Sub
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 22
6 déc. 2012 à 16:22
Bienvenue sur le site.
Prends le temps de lire les règlements du site.
Et utilise le 3e bouton à droite pour formater ton code.
Ça rend la lecture plus facile...

Juste des idées comme ça:
Évite les "Selection", comme ici
Range("C3:D4").Select 
Selection.Font.Bold =  True

Fais plutôt comme ceci
Range("C3:D4").Font.Bold = True


Ici, tes boucles (de 3 à 3...) ne servent à rien.
For d = 3 To 3 
If Cells(d, 3).Value "" Then Cells(d, 3).Value "ARTICLE" 
Next d

Aussi bien écrire comme ceci sans le for...next
If Cells( 3 , 3).Value "" Then Cells(<gras>3, 3).Value</gras> "ARTICLE


MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
Rejoignez-nous