Aide sur vba
dinna17000
-
dct33 Messages postés 42 Statut Membre -
dct33 Messages postés 42 Statut Membre -
Bonjour,
Tous d'abord j'explique ce que j'ai réaliser sous excel :
J'ai créer un command bouton, lorsque je clic dessus sa insère un tableau de 16 colonnes et 4 lignes avec dans certaines celule des fonctions (dont recherche).
Le problème lorsque je clic une deuxième fois sur le command bouton sa insère la mise en page du tableau mais pas les fonctions.
Je souhaiterais savoir en faite comment je peux faire pour que quand je clic sur le command bouton, sa insère la mise en forme du tableau mais aussi les fonctions ?
voila les fonctions :
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])"
Je vous remercie
Tous d'abord j'explique ce que j'ai réaliser sous excel :
J'ai créer un command bouton, lorsque je clic dessus sa insère un tableau de 16 colonnes et 4 lignes avec dans certaines celule des fonctions (dont recherche).
Le problème lorsque je clic une deuxième fois sur le command bouton sa insère la mise en page du tableau mais pas les fonctions.
Je souhaiterais savoir en faite comment je peux faire pour que quand je clic sur le command bouton, sa insère la mise en forme du tableau mais aussi les fonctions ?
voila les fonctions :
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])"
Je vous remercie
3 réponses
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
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