Bonjour le Forum,
je cherche à améliorer une macro pour la rendre moins "gourmande"..lol
je m'explique
je suis en train de concevoir un fichier comtat pour une association...(NB je n'y connais rien en compta.)
grâce à un userform je transfert les données sur une feuille journal et celons le nom du compte, renvoi sur la feuille du compte indiqué.
voici la partie de la macro que j'utilise :
' RENVOYER DANS LES DIFFERENTES FEUILLES DE COMPTES
' LES CHARGES
If ComboBox2.Value = "6023 A" Then
With Sheets("6023 A")
.Rows("3:3").Insert Shift:=x1Down, CopyOrigin:=x1FormatFromLeftOrAbove
.Range("A3").Value = (TextBox1) 'renvoi le numero d'ordre
If TextBox3 = "" Then
.Range("B3") = CDate(TextBox2) ' renvoi la date automatique
Else
.Range("B3") = TextBox3 ' sinon renvoi la date saisie
End If
.Range("C3").Value = TextBox4 'renvoi la desognation
.Range("D3").Value = ComboBox3 'renvoi compte financier
.Range("E3").Value = ComboBox1 'renvoi moyen de réglement
.Range("F3").Value = TextBox6 ' renvoi le n° de cheque
.Range("G3").Value = (TextBox7) ' renvoi la somme
End With
ElseIf ComboBox2.Value = "60281 M" Then
With Sheets("60281 M")
.Rows("3:3").Insert Shift:=x1Down, CopyOrigin:=x1FormatFromLeftOrAbove
.Range("A3").Value = (TextBox1)
If TextBox3 = "" Then
.Range("B3") = CDate(TextBox2) ' renvoi la date automatique
Else
.Range("B3") = TextBox3 ' sinon renvoi la date saisie
End If
.Range("C3").Value = TextBox4
.Range("D3").Value = ComboBox3
.Range("E3").Value = ComboBox1 'renvoi moyen de réglement
.Range("F3").Value = TextBox6 ' renvoi le n° de cheque
.Range("G3").Value = (TextBox7) ' renvoi la somme
End With
ElseIf ComboBox2.Value = "60282 P" Then
With Sheets("60282 P")
.Rows("3:3").Insert Shift:=x1Down, CopyOrigin:=x1FormatFromLeftOrAbove
.Range("A3").Value = (TextBox1) 'renvoi le numero d'ordre
If TextBox3 = "" Then
.Range("B3") = CDate(TextBox2) ' renvoi la date automatique
Else
.Range("B3") = TextBox3 ' sinon renvoi la date saisie
End If
.Range("C3").Value = TextBox4 'renvoi la desognation
.Range("D3").Value = ComboBox3 'renvoi compte financier
.Range("E3").Value = ComboBox1 'renvoi moyen de réglement
.Range("F3").Value = TextBox6 ' renvoi le n° de cheque
.Range("G3").Value = (TextBox7) ' renvoi la somme
End With
ElseIf ComboBox2.Value = "6063 E" Then
With Sheets("6063 E")
.Rows("3:3").Insert Shift:=x1Down, CopyOrigin:=x1FormatFromLeftOrAbove
.Range("A3").Value = (TextBox1) 'renvoi le numero d'ordre
If TextBox3 = "" Then
.Range("B3") = CDate(TextBox2) ' renvoi la date automatique
Else
.Range("B3") = TextBox3 ' sinon renvoi la date saisie
End If
.Range("C3").Value = TextBox4 'renvoi la desognation
.Range("D3").Value = ComboBox3 'renvoi compte financier
.Range("E3").Value = ComboBox1 'renvoi moyen de réglement
.Range("F3").Value = TextBox6 ' renvoi le n° de cheque
.Range("G3").Value = (TextBox7) ' renvoi la somme
End With
ElseIf .............................
malheureusement, au vu du nombre de feuille la macro BLOQUE : trop importante
Donc comment améliorer ou changer la macro et ne plus avoir ce message d'erreur
Merci d'avance au forum
je cherche à améliorer une macro pour la rendre moins "gourmande"..lol
je m'explique
je suis en train de concevoir un fichier comtat pour une association...(NB je n'y connais rien en compta.)
grâce à un userform je transfert les données sur une feuille journal et celons le nom du compte, renvoi sur la feuille du compte indiqué.
voici la partie de la macro que j'utilise :
' RENVOYER DANS LES DIFFERENTES FEUILLES DE COMPTES
' LES CHARGES
If ComboBox2.Value = "6023 A" Then
With Sheets("6023 A")
.Rows("3:3").Insert Shift:=x1Down, CopyOrigin:=x1FormatFromLeftOrAbove
.Range("A3").Value = (TextBox1) 'renvoi le numero d'ordre
If TextBox3 = "" Then
.Range("B3") = CDate(TextBox2) ' renvoi la date automatique
Else
.Range("B3") = TextBox3 ' sinon renvoi la date saisie
End If
.Range("C3").Value = TextBox4 'renvoi la desognation
.Range("D3").Value = ComboBox3 'renvoi compte financier
.Range("E3").Value = ComboBox1 'renvoi moyen de réglement
.Range("F3").Value = TextBox6 ' renvoi le n° de cheque
.Range("G3").Value = (TextBox7) ' renvoi la somme
End With
ElseIf ComboBox2.Value = "60281 M" Then
With Sheets("60281 M")
.Rows("3:3").Insert Shift:=x1Down, CopyOrigin:=x1FormatFromLeftOrAbove
.Range("A3").Value = (TextBox1)
If TextBox3 = "" Then
.Range("B3") = CDate(TextBox2) ' renvoi la date automatique
Else
.Range("B3") = TextBox3 ' sinon renvoi la date saisie
End If
.Range("C3").Value = TextBox4
.Range("D3").Value = ComboBox3
.Range("E3").Value = ComboBox1 'renvoi moyen de réglement
.Range("F3").Value = TextBox6 ' renvoi le n° de cheque
.Range("G3").Value = (TextBox7) ' renvoi la somme
End With
ElseIf ComboBox2.Value = "60282 P" Then
With Sheets("60282 P")
.Rows("3:3").Insert Shift:=x1Down, CopyOrigin:=x1FormatFromLeftOrAbove
.Range("A3").Value = (TextBox1) 'renvoi le numero d'ordre
If TextBox3 = "" Then
.Range("B3") = CDate(TextBox2) ' renvoi la date automatique
Else
.Range("B3") = TextBox3 ' sinon renvoi la date saisie
End If
.Range("C3").Value = TextBox4 'renvoi la desognation
.Range("D3").Value = ComboBox3 'renvoi compte financier
.Range("E3").Value = ComboBox1 'renvoi moyen de réglement
.Range("F3").Value = TextBox6 ' renvoi le n° de cheque
.Range("G3").Value = (TextBox7) ' renvoi la somme
End With
ElseIf ComboBox2.Value = "6063 E" Then
With Sheets("6063 E")
.Rows("3:3").Insert Shift:=x1Down, CopyOrigin:=x1FormatFromLeftOrAbove
.Range("A3").Value = (TextBox1) 'renvoi le numero d'ordre
If TextBox3 = "" Then
.Range("B3") = CDate(TextBox2) ' renvoi la date automatique
Else
.Range("B3") = TextBox3 ' sinon renvoi la date saisie
End If
.Range("C3").Value = TextBox4 'renvoi la desognation
.Range("D3").Value = ComboBox3 'renvoi compte financier
.Range("E3").Value = ComboBox1 'renvoi moyen de réglement
.Range("F3").Value = TextBox6 ' renvoi le n° de cheque
.Range("G3").Value = (TextBox7) ' renvoi la somme
End With
ElseIf .............................
malheureusement, au vu du nombre de feuille la macro BLOQUE : trop importante
Donc comment améliorer ou changer la macro et ne plus avoir ce message d'erreur
Merci d'avance au forum