Fonction VBA
zeratule
-
ccm81 Messages postés 11033 Statut Membre -
ccm81 Messages postés 11033 Statut Membre -
Bonjour,
J'ai besoin d'aide, je sais pas comment faire les fonctions, au fait j'ai un bout de code quis je repete, donc je voulais le mettre en fonction que j'appele a chaque fois que j'en ai besoin.
Voici le code:
' Mise en forme de la page Chiffrage
'========================================================================
Cells(1, 1).Select
ActiveCell.FormulaR1C1 = "Nom de l'affaire"
Cells(2, 1).Select
ActiveCell.FormulaR1C1 = "Ref de l'affaire"
Range("A1:B1").Select
Selection.MergeCells = True
Cells(4, 1).Select
ActiveCell.FormulaR1C1 = "Semaine"
Cells(5, 1).Select
ActiveCell.FormulaR1C1 = "Chantier"
Cells(7, 1).Select
ActiveCell.FormulaR1C1 = "Item"
Cells(7, 2).Select
ActiveCell.FormulaR1C1 = "Tache"
Cells(7, 3).Select
ActiveCell.FormulaR1C1 = "Q"
Cells(5, 4).Select
ActiveCell.FormulaR1C1 = "Horraire"
Cells(4, 4).Select
ActiveCell.FormulaR1C1 = "Nbre de monteur"
Cells(7, 4).Select
ActiveCell.FormulaR1C1 = "Nbre heure"
Cells(7, 5).Select
ActiveCell.FormulaR1C1 = "Achat"
Cells(7, 6).Select
ActiveCell.FormulaR1C1 = "Observation"
Cells(5, 6).Select
ActiveCell.FormulaR1C1 = "TOT heures"
Cells(4, 9).Select
ActiveCell.FormulaR1C1 = "TOTAL "
Cells(5, 9).Select
ActiveCell.FormulaR1C1 = "REEL"
'Fusionner les cellules
Rows("3:3").Select
Application.CutCopyMode = False
Selection.MergeCells = True
Rows("6:6").Select
Selection.MergeCells = True
Range("C4:C5").Select
Selection.MergeCells = True
Range("H4:H5").Select
Selection.MergeCells = True
Range("K4:AH4").Select
Selection.MergeCells = True
Range("K4:K5").Select
Selection.MergeCells = True
Range("C1:D1").Select
Selection.MergeCells = True
Range("C2:D2").Select
Selection.MergeCells = True
Range("E1:AH2").Select
Selection.MergeCells = True
Range("F4:G4").Select
Selection.MergeCells = True
Rows("1:7").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
End With
Range("G10").Select
Range("C1:D1") = UserForm1.TextBox1
Range("C2:D2") = UserForm1.TextBox2
Merci d'avance
J'ai besoin d'aide, je sais pas comment faire les fonctions, au fait j'ai un bout de code quis je repete, donc je voulais le mettre en fonction que j'appele a chaque fois que j'en ai besoin.
Voici le code:
' Mise en forme de la page Chiffrage
'========================================================================
Cells(1, 1).Select
ActiveCell.FormulaR1C1 = "Nom de l'affaire"
Cells(2, 1).Select
ActiveCell.FormulaR1C1 = "Ref de l'affaire"
Range("A1:B1").Select
Selection.MergeCells = True
Cells(4, 1).Select
ActiveCell.FormulaR1C1 = "Semaine"
Cells(5, 1).Select
ActiveCell.FormulaR1C1 = "Chantier"
Cells(7, 1).Select
ActiveCell.FormulaR1C1 = "Item"
Cells(7, 2).Select
ActiveCell.FormulaR1C1 = "Tache"
Cells(7, 3).Select
ActiveCell.FormulaR1C1 = "Q"
Cells(5, 4).Select
ActiveCell.FormulaR1C1 = "Horraire"
Cells(4, 4).Select
ActiveCell.FormulaR1C1 = "Nbre de monteur"
Cells(7, 4).Select
ActiveCell.FormulaR1C1 = "Nbre heure"
Cells(7, 5).Select
ActiveCell.FormulaR1C1 = "Achat"
Cells(7, 6).Select
ActiveCell.FormulaR1C1 = "Observation"
Cells(5, 6).Select
ActiveCell.FormulaR1C1 = "TOT heures"
Cells(4, 9).Select
ActiveCell.FormulaR1C1 = "TOTAL "
Cells(5, 9).Select
ActiveCell.FormulaR1C1 = "REEL"
'Fusionner les cellules
Rows("3:3").Select
Application.CutCopyMode = False
Selection.MergeCells = True
Rows("6:6").Select
Selection.MergeCells = True
Range("C4:C5").Select
Selection.MergeCells = True
Range("H4:H5").Select
Selection.MergeCells = True
Range("K4:AH4").Select
Selection.MergeCells = True
Range("K4:K5").Select
Selection.MergeCells = True
Range("C1:D1").Select
Selection.MergeCells = True
Range("C2:D2").Select
Selection.MergeCells = True
Range("E1:AH2").Select
Selection.MergeCells = True
Range("F4:G4").Select
Selection.MergeCells = True
Rows("1:7").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
End With
Range("G10").Select
Range("C1:D1") = UserForm1.TextBox1
Range("C2:D2") = UserForm1.TextBox2
Merci d'avance
A voir également:
- Fonction VBA
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Excel compter cellule couleur sans vba - Guide
- Fonction remplacer sur word - Guide
2 réponses
bonjour,
on peut deja simplifier un peu puis
quelque chose comme ça où Call tets1 appelle la procedure tets1
on peut deja simplifier un peu puis
quelque chose comme ça où Call tets1 appelle la procedure tets1
Private Sub CommandButton1_Click()
Call test1
End Sub
Sub test1()
' affectations
Cells(1, 1).Value = "Nom de l'affaire"
Cells(2, 1).Value = "Ref de l'affaire"
Cells(4, 1).Value = "Semaine"
Cells(5, 1).Value = "Chantier"
Cells(7, 1).Value = "Item"
' fusions
Range("A1:B1").MergeCells = True
Rows("3:3").MergeCells = True
' traces des bordures
For Each c In Range("A1:Z7")
c.Borders(xlDiagonalDown).LineStyle = xlNone
c.Borders(xlDiagonalUp).LineStyle = xlNone
c.Borders(xlEdgeLeft).LineStyle = xlContinuous
c.Borders(xlEdgeTop).LineStyle = xlContinuous
Next c
End Sub
Bonjour à tous,
zeratule:
Une fonction ne renvoit qu'un objet (valeur, couleur, cellule....)
Pour toi il faut utiliser une fonction paramétrée
*par ex si c'est la mise en page identique de plusieurs folios et en utilisant la macro de ccm81
Nota: si c'est dans le m^me classeur, tu as beaucoup plus simple
par exemple
Ccm81
excuse l'incruste
peut-être encore plus simple pour trace des bordures :-) si tout du moins j'ai pigé son truc
zeratule:
Une fonction ne renvoit qu'un objet (valeur, couleur, cellule....)
Pour toi il faut utiliser une fonction paramétrée
*par ex si c'est la mise en page identique de plusieurs folios et en utilisant la macro de ccm81
Sub mettre_en_page(onglet)
With Sheets(onglet)
.Cells(1, 1).Value = "Nom de l'affaire"
.Cells(2, 1).Value = "Ref de l'affaire"
.Cells(4, 1).Value = "Semaine"
.Cells(5, 1).Value = "Chantier"
.Cells(7, 1).Value = "Item"
' fusions
.Range("A1:B1").MergeCells = True
.Rows("3:3").MergeCells = True
' traces des bordures
.Range("A1:Z7").Borders.Weight = xlThin
End With
sub principale() dim feuil1 as string dim feuil2 as string mettre_en_page feuil1 mettre_en_page feuil10 end sub
Nota: si c'est dans le m^me classeur, tu as beaucoup plus simple
par exemple
Sheets(Array("Feuil1", "Feuil3")).Select
en première ligne de ta macro
et
en dernière ligne
Sheets("Feuil1").Select
Ccm81
excuse l'incruste
peut-être encore plus simple pour trace des bordures :-) si tout du moins j'ai pigé son truc