Aide sur vba
Fermé
dinna17000
-
13 avril 2010 à 18:24
dct33 Messages postés 41 Date d'inscription jeudi 8 avril 2010 Statut Membre Dernière intervention 20 avril 2010 - 13 avril 2010 à 21:38
dct33 Messages postés 41 Date d'inscription jeudi 8 avril 2010 Statut Membre Dernière intervention 20 avril 2010 - 13 avril 2010 à 21:38
3 réponses
dct33
Messages postés
41
Date d'inscription
jeudi 8 avril 2010
Statut
Membre
Dernière intervention
20 avril 2010
39
13 avril 2010 à 19:16
13 avril 2010 à 19:16
Bonjour,
Vous écrivez des fonctions cellules OK
Donnez le code que vous avez mis dans le bouton, c'est plus intéressant pour vous aider
Bonne programmation
L
Vous écrivez des fonctions cellules OK
Donnez le code que vous avez mis dans le bouton, c'est plus intéressant pour vous aider
Bonne programmation
L
voila le code complet :
Dim NumeroLigne As Integer
NumeroLigne = Range("LigneTotal").Row
'insérer ligne
Rows(NumeroLigne).Insert Shift:=xlDown
Rows(NumeroLigne).Insert Shift:=xlDown
Rows(NumeroLigne).Insert Shift:=xlDown
Rows(NumeroLigne).Insert Shift:=xlDown
'première ligne
NumeroLigne = Range("LigneTotal").Offset(-4, 0).Row
Range("A" & NumeroLigne).Interior.ColorIndex = 36
Range("F" & NumeroLigne).Interior.ColorIndex = 36
Range("E" & NumeroLigne).Interior.ColorIndex = 2
Range("L" & NumeroLigne).Interior.ColorIndex = 36
Range("N" & NumeroLigne).Interior.ColorIndex = 36
Range("O" & NumeroLigne).Interior.ColorIndex = 36
Range("G" & NumeroLigne & ":I" & NumeroLigne).Interior.ColorIndex = 2
Range("A" & NumeroLigne & ":P" & NumeroLigne).Borders.LineStyle = xlContinuous
'deuxième ligne
NumeroLigne = NumeroLigne + 1
Range("G" & NumeroLigne & ":I" & NumeroLigne).Interior.ColorIndex = 36
Range("E" & NumeroLigne & ":F" & NumeroLigne).Interior.ColorIndex = 15
Range("E" & NumeroLigne & ":F" & NumeroLigne).Merge
Range("E" & NumeroLigne & ":I" & NumeroLigne).Borders.LineStyle = xlContinuous
'troisème ligne
NumeroLigne = NumeroLigne + 1
Range("G" & NumeroLigne & ":I" & NumeroLigne).Interior.ColorIndex = 36
Range("E" & NumeroLigne & ":F" & NumeroLigne).Interior.ColorIndex = 15
Range("E" & NumeroLigne & ":F" & NumeroLigne).Merge
Range("E" & NumeroLigne & ":I" & NumeroLigne).Borders.LineStyle = xlContinuous
'4eme ligne
NumeroLigne = NumeroLigne + 1
Range("G" & NumeroLigne & ":I" & NumeroLigne).Interior.ColorIndex = 36
Range("E" & NumeroLigne & ":F" & NumeroLigne).Interior.ColorIndex = 15
Range("E" & NumeroLigne & ":F" & NumeroLigne).Merge
Range("E" & NumeroLigne & ":I" & NumeroLigne).Borders.LineStyle = xlContinuous
'fonction
Range("B17").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]="""","""",VLOOKUP(RC[-1],salaries,2))"
Range("C17").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]="""","""",VLOOKUP(RC[-2],salaries,3))"
Range("D17").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]="""","""",VLOOKUP(RC[-3],salaries,4))"
Range("E17").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]="""","""",VLOOKUP(RC[-4],salaries,6))"
Range("G17").Select
ActiveCell.FormulaR1C1 = "=R[1]C"
Range("H17").Select
ActiveCell.FormulaR1C1 = "=IF(R[2]C="""",R[1]C,IF(R[3]C="""",R[2]C,R[3]C))"
Range("I17").Select
ActiveCell.FormulaR1C1 = "=IF(R[2]C="""",R[1]C,IF(R[3]C="""",R[2]C,R[3]C))"
Range("J17").Select
ActiveCell.FormulaR1C1 = "=DAYS360(RC[-3],RC[-1])"
Range("K17").Select
ActiveCell.FormulaR1C1 = "=NB.JOURS.OUVRES(RC[-4],RC[-3])"
Range("M17").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-8]="""",""0"",RC[-8]/30*RC[-3])"
Range("P17").Select
ActiveCell.FormulaR1C1 = "=COUNTA(R[2]C[-9]:R[3]C[-9])"
end sub
Dim NumeroLigne As Integer
NumeroLigne = Range("LigneTotal").Row
'insérer ligne
Rows(NumeroLigne).Insert Shift:=xlDown
Rows(NumeroLigne).Insert Shift:=xlDown
Rows(NumeroLigne).Insert Shift:=xlDown
Rows(NumeroLigne).Insert Shift:=xlDown
'première ligne
NumeroLigne = Range("LigneTotal").Offset(-4, 0).Row
Range("A" & NumeroLigne).Interior.ColorIndex = 36
Range("F" & NumeroLigne).Interior.ColorIndex = 36
Range("E" & NumeroLigne).Interior.ColorIndex = 2
Range("L" & NumeroLigne).Interior.ColorIndex = 36
Range("N" & NumeroLigne).Interior.ColorIndex = 36
Range("O" & NumeroLigne).Interior.ColorIndex = 36
Range("G" & NumeroLigne & ":I" & NumeroLigne).Interior.ColorIndex = 2
Range("A" & NumeroLigne & ":P" & NumeroLigne).Borders.LineStyle = xlContinuous
'deuxième ligne
NumeroLigne = NumeroLigne + 1
Range("G" & NumeroLigne & ":I" & NumeroLigne).Interior.ColorIndex = 36
Range("E" & NumeroLigne & ":F" & NumeroLigne).Interior.ColorIndex = 15
Range("E" & NumeroLigne & ":F" & NumeroLigne).Merge
Range("E" & NumeroLigne & ":I" & NumeroLigne).Borders.LineStyle = xlContinuous
'troisème ligne
NumeroLigne = NumeroLigne + 1
Range("G" & NumeroLigne & ":I" & NumeroLigne).Interior.ColorIndex = 36
Range("E" & NumeroLigne & ":F" & NumeroLigne).Interior.ColorIndex = 15
Range("E" & NumeroLigne & ":F" & NumeroLigne).Merge
Range("E" & NumeroLigne & ":I" & NumeroLigne).Borders.LineStyle = xlContinuous
'4eme ligne
NumeroLigne = NumeroLigne + 1
Range("G" & NumeroLigne & ":I" & NumeroLigne).Interior.ColorIndex = 36
Range("E" & NumeroLigne & ":F" & NumeroLigne).Interior.ColorIndex = 15
Range("E" & NumeroLigne & ":F" & NumeroLigne).Merge
Range("E" & NumeroLigne & ":I" & NumeroLigne).Borders.LineStyle = xlContinuous
'fonction
Range("B17").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]="""","""",VLOOKUP(RC[-1],salaries,2))"
Range("C17").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]="""","""",VLOOKUP(RC[-2],salaries,3))"
Range("D17").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]="""","""",VLOOKUP(RC[-3],salaries,4))"
Range("E17").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]="""","""",VLOOKUP(RC[-4],salaries,6))"
Range("G17").Select
ActiveCell.FormulaR1C1 = "=R[1]C"
Range("H17").Select
ActiveCell.FormulaR1C1 = "=IF(R[2]C="""",R[1]C,IF(R[3]C="""",R[2]C,R[3]C))"
Range("I17").Select
ActiveCell.FormulaR1C1 = "=IF(R[2]C="""",R[1]C,IF(R[3]C="""",R[2]C,R[3]C))"
Range("J17").Select
ActiveCell.FormulaR1C1 = "=DAYS360(RC[-3],RC[-1])"
Range("K17").Select
ActiveCell.FormulaR1C1 = "=NB.JOURS.OUVRES(RC[-4],RC[-3])"
Range("M17").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-8]="""",""0"",RC[-8]/30*RC[-3])"
Range("P17").Select
ActiveCell.FormulaR1C1 = "=COUNTA(R[2]C[-9]:R[3]C[-9])"
end sub
dct33
Messages postés
41
Date d'inscription
jeudi 8 avril 2010
Statut
Membre
Dernière intervention
20 avril 2010
39
13 avril 2010 à 21:38
13 avril 2010 à 21:38
Bonsoir,
Pourquoi faire une macro pour créer le tableau d'origine
Si le tableau est crée dans la feuille il suffit de sélectionner la zone , de la copier et de l'insérer
Quand on effectue la même opération sur plusieurs lignes il faut faire une boucle
ça simplifie le code
exemple
For X = 1 to 5
Cells(X,1).Interior.ColorIndex = 36
next X
Bonne programmation
Pourquoi faire une macro pour créer le tableau d'origine
Si le tableau est crée dans la feuille il suffit de sélectionner la zone , de la copier et de l'insérer
Quand on effectue la même opération sur plusieurs lignes il faut faire une boucle
ça simplifie le code
exemple
For X = 1 to 5
Cells(X,1).Interior.ColorIndex = 36
next X
Bonne programmation