VB chiffre entier au lieu de chiffre décimal

Fermé
mh - 16 août 2011 à 11:10
melanie1324 Messages postés 1504 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 - 17 août 2011 à 10:20
Bonjour,


J'ai bien regardé vos différentes réponses mais n'ai pas trouvé la solution à mon problème qui est le suivant : dans le fichier source j'ai des chiffres avec deux décimales, et dans le fichier après run de la macro, j'ai des chiffres entiers (non arrondis) et bien sûr les totaux sont faux. Je ne vois pas de fonction 'round' ou 'integer' donc je ne comprends pas d'où vient le problème. Qui peut m'aider car je débute en macro excel et celle-ci était déjà faite mais apparemment quelqu'un y a touché et du coup elle ne fonctionne plus. Les colonnes où les chiffres sont faux sont L et M.
Merci par avance
MH
-------------------------------------------------------------------------------------------------------------------


On Error GoTo MesErreurs

Workbooks.OpenText Filename:="H:\ecriture.txt", Origin:=xlWindows, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 4), _
Array(3, 1), Array(4, 2), Array(5, 2), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 4), _
Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14, 1), Array(15, 1), Array( _
16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array(20, 1), Array(21, 1), Array(22, 1)) _
, TrailingMinusNumbers:=True

ActiveWindow.Zoom = 10

Columns("B:B").Select
Selection.NumberFormat = "ddmmyy"
Columns("I:I").Select
Selection.NumberFormat = "ddmmyy"

Columns("I:I").Select
Selection.NumberFormat = "ddmmyy"
Columns("I:I").Select
Selection.NumberFormat = "ddmmyy"

' On compte le nombre de lignes du tableau et on le met dans la variable NBRLIGN
With ActiveSheet
.Activate
.Range("D" & .Range("D65536").End(xlUp)(1).Row).Select
End With
nbrlign = (ActiveSheet.Range("D65536").End(xlUp)(1).Row)


Columns("G:G").Select
Selection.NumberFormat = "@"

For ilign = 1 To nbrlign
Range("C" & ilign).Activate
un = ActiveCell.Value
deux = Left(ActiveCell.Value, 3)
trois = Len(ActiveCell.Value)

Select Case deux
Case "401"
Gtiers = Mid(un, 4, trois - 3)
ActiveCell.Value = "401000"
Range("G" & ilign).Activate
ActiveCell.Value = Gtiers
Case "411"
Gtiers = Mid(un, 4, trois - 3)
ActiveCell.Value = "411000"
Range("G" & ilign).Activate
ActiveCell.Value = Gtiers
End Select
Next ilign


For ilign = 1 To nbrlign
Range("K" & ilign).Activate
ActiveCell.Value = Val(ActiveCell.Value)
ActiveCell.NumberFormat = "0.000000"
Next ilign

For ilign = 1 To nbrlign
Range("L" & ilign).Activate
ActiveCell.Value = Val(ActiveCell.Value)
ActiveCell.NumberFormat = "0.00"
Next ilign

For ilign = 1 To nbrlign
Range("M" & ilign).Activate
ActiveCell.Value = Val(ActiveCell.Value)
ActiveCell.NumberFormat = "0.00"
Next ilign

For ilign = 1 To nbrlign
Range("N" & ilign).Activate
ActiveCell.Value = "G"
Next ilign


Columns("A:A").Select
Selection.NumberFormat = "@"

For ilign = 1 To nbrlign
Range("A" & ilign).Activate
Select Case Len(ActiveCell.Value)
Case 1
trs = ActiveCell.Value
ActiveCell.Value = "0" & trs
End Select
Next ilign

For ilign = 1 To nbrlign
Range("J" & ilign).Activate
Monnaie = ActiveCell.Value
Select Case Monnaie
Case "$"
ActiveCell.Value = "USD"
End Select
Next ilign

Range("N1").Select
Selection.EntireColumn.Insert

For ilign = 1 To nbrlign
Range("J" & ilign).Activate
Select Case ActiveCell.Value
Case Is <> "EUR"
Range("K" & ilign).Activate
ValDevise = ActiveCell.Value
Range("L" & ilign).Activate
Select Case ActiveCell.Value
Case Is > 0
COLL = ActiveCell.Value
ActiveCell.Value = COLL / ValDevise
Range("N" & ilign).Activate
ActiveCell.Value = COLL
Case Else
Range("M" & ilign).Activate
COLM = ActiveCell.Value
ActiveCell.Value = COLM / ValDevise
Range("N" & ilign).Activate
ActiveCell.Value = COLM
End Select
End Select
Next ilign

Beep
ActiveWindow.Zoom = 100
Range("A1").Select

Msg = MsgBox("Travail terminé", vbInformation + vbOKOnly, "Macro Ecritures Comptables")

Exit Sub
MesErreurs:
Msg = MsgBox("Erreur d'exécution " & Err.Number & vbCrLf & vbCrLf & Err.Description, vbCritical + vbOKOnly, "Macro Ecritures Comptables")

End Sub
A voir également:

2 réponses

melanie1324 Messages postés 1504 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
16 août 2011 à 13:48
bonjour,

je ne sais pas d'où vient ton problème. Mais je vais te simplifier la macro. Tu copies et colles à l'endroit ou c'était. ce qui est en vert sont les explications de ce que cela fait et cela pourra peut être t'aider à trouver ce qui ne va pas.:

On Error GoTo MesErreurs
Workbooks.OpenText Filename:="H:\ecriture.txt", Origin:=xlWindows, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 4), _
Array(3, 1), Array(4, 2), Array(5, 2), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 4), _
Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14, 1), Array(15, 1), Array( _
16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array(20, 1), Array(21, 1), Array(22, 1)) _
, TrailingMinusNumbers:=True
ActiveWindow.Zoom = 10

'on sélectionne la colonne B et I et on les mets au format jjmmmaa
Columns("B:B").Select
Selection.NumberFormat = "ddmmyy"
Columns("I:I").Select
Selection.NumberFormat = "ddmmyy"

' On compte le nombre de lignes du tableau et on le met dans la variable NBRLIGN
With ActiveSheet
.Activate
.Range("D" & .Range("D65536").End(xlUp)(1).Row).Select
End With

nbrlign = (ActiveSheet.Range("D65536").End(xlUp)(1).Row)


'on sélectionne la colonne A et G et on la emt au format d'une adresse mail
Columns("G:G").Select
Selection.NumberFormat = "@"
Columns("A:A").Select
Selection.NumberFormat = "@"

For ilign = 1 To nbrlign
'on va sélectionner la colonne C pour chacune des lignes
Range("C" & ilign).Activate
'la variable un est égale à la valeur de la cellule
un = ActiveCell.Value
'la variable deux est égale aux 3 premiers caractères à gauche de la cellule
deux = Left(ActiveCell.Value, 3)
'trois est égal au nombre de caractère de la cellule
trois = Len(ActiveCell.Value)
Select Case deux
'si deux = 401
Case "401"
Gtiers = Mid(un, 4, trois - 3)
'la cellule = 401000
ActiveCell.Value = "401000"
Range("G" & ilign).Activate
ActiveCell.Value = Gtiers

Case "411"
'si deux = 411
Gtiers = Mid(un, 4, trois - 3)
'la cellule = 411000
ActiveCell.Value = "411000"
Range("G" & ilign).Activate
ActiveCell.Value = Gtiers
End Select


' si en colonne j tu as la valeur $ alors on écrit USD
Monnaie = Cells(ilign, 10).Value
If Monnaie = "$" Then
ActiveCell.Value = "USD"
End If

' la colonne k a pour format décimal avec 6 chiffres derrière la virgule
Range("K" & ilign).Activate
ActiveCell.Value = Val(ActiveCell.Value)
ActiveCell.NumberFormat = "0.000000"

' la colonne l a pour format décimal avec 2 chiffres derrière la virgule
Range("L" & ilign).Activate
ActiveCell.Value = Val(ActiveCell.Value)
ActiveCell.NumberFormat = "0.00"

' la colonne M a pour format décimal avec 2 chiffres derrière la virgule
Range("M" & ilign).Activate
ActiveCell.Value = Val(ActiveCell.Value)
ActiveCell.NumberFormat = "0.00"

'la colonne N a pour valeur G

Cells(ilign, 14) = "G"

'si le nombre de caractères de la colonna A = 1 alors la colonne A = 0 + valeur de la cellule

If Len(Cells(ilign, 1)) = 1 Then
trs = Cells(ilign, 1).Value
ActiveCell.Value = "0" & trs
End If

'on sélectionnes la colonne N et on rajoute une colonne
Range("N1").Select
Selection.EntireColumn.Insert

'si la colonne J <> eur

Range("J" & ilign).Activate
Select Case ActiveCell.Value
If Cells(ilign, 10) <> "EUR" Then
'la variable valdevise = colonne K
ValDevise = Cells(ilign, 11).Value
'si ta colonne L est supérieure à 0
If Cells(ilign, 12) > 0 Then
'la variable coll est égale à la valeur de ta cellule
coll = Cells(ilign, 12)
'la colonne l est égale à la conne L / taux de la colonne K
Cells(ilign, 12) = coll / ValDevise
'la colonne N est égale à la colonne L avant la division
Cells(ilign, 14) = coll
Else
' si la colonne L = 0
' colm = valeur de la colonne M
COLM = Cells(ilign, 13)
'la colonne M = M/ la taux de la colonne K
Cells(ilign, 13) = COLM / ValDevise
'la colonne N est égale à la colonne M avant la division
Cells(ilign, 14) = COLM
End If
End If



Next ilign

'un petit bip sonore
Beep

'on zomme à 100%
ActiveWindow.Zoom = 100
'on sélectionnes la cellule A1
Range("A1").Select
'on dit que la macro est terminée
Msg = MsgBox("Travail terminé", vbInformation + vbOKOnly, "Macro Ecritures Comptables")
Exit Sub
MesErreurs:
' ce message apparaît s'il y a des problèmes
Msg = MsgBox("Erreur d'exécution " & Err.Number & vbCrLf & vbCrLf & Err.Description, vbCritical + vbOKOnly, "Macro Ecritures Comptables")
End Sub
End Sub
0
melanie1324 Messages postés 1504 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
16 août 2011 à 13:51
pour comprendre également, rapetisse cette fenêtre et appuie sur F8, ca exécutera la macro ligne par ligne.
0
merci Mélanie pour ton aide. Cela me permet d'y voir plus clair. Mais cela n'a pas résolu mon problème de décimales qui ne s'affichent pas. seul l'entier s'affiche suivi de .00
0
melanie1324 Messages postés 1504 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
16 août 2011 à 14:58
c'est à cause de ce bout de code :
ActiveCell.Value = Val(ActiveCell.Value) ==> transforme les données de ta colonne en valeur chiffrées
ActiveCell.NumberFormat = "0.00" ==> transforme tes chiffres en format 0.00

en quel format, tu veux qu'il soit??

essaie ca pour voir :

On Error GoTo MesErreurs
Workbooks.OpenText Filename:="H:\ecriture.txt", Origin:=xlWindows, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 4), _
Array(3, 1), Array(4, 2), Array(5, 2), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 4), _
Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14, 1), Array(15, 1), Array( _
16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array(20, 1), Array(21, 1), Array(22, 1)) _
, TrailingMinusNumbers:=True
ActiveWindow.Zoom = 10

'on sélectionne la colonne B et I et on les mets au format jjmmmaa
Columns("B:B").Select
Selection.NumberFormat = "ddmmyy"
Columns("I:I").Select
Selection.NumberFormat = "ddmmyy"

' On compte le nombre de lignes du tableau et on le met dans la variable NBRLIGN
With ActiveSheet
.Activate
.Range("D" & .Range("D65536").End(xlUp)(1).Row).Select
End With

nbrlign = (ActiveSheet.Range("D65536").End(xlUp)(1).Row)


'on sélectionne la colonne A et G et on la emt au format d'une adresse mail
Columns("G:G").Select
Selection.NumberFormat = "@"
Columns("A:A").Select
Selection.NumberFormat = "@"

For ilign = 1 To nbrlign
'on va sélectionner la colonne C pour chacune des lignes
Range("C" & ilign).Activate
'la variable un est égale à la valeur de la cellule
un = ActiveCell.Value
'la variable deux est égale aux 3 premiers caractères à gauche de la cellule
deux = Left(ActiveCell.Value, 3)
'trois est égal au nombre de caractère de la cellule
trois = Len(ActiveCell.Value)
Select Case deux
'si deux = 401
Case "401"
Gtiers = Mid(un, 4, trois - 3)
'la cellule = 401000
ActiveCell.Value = "401000"
Range("G" & ilign).Activate
ActiveCell.Value = Gtiers

Case "411"
'si deux = 411
Gtiers = Mid(un, 4, trois - 3)
'la cellule = 411000
ActiveCell.Value = "411000"
Range("G" & ilign).Activate
ActiveCell.Value = Gtiers
End Select


' si en colonne j tu as la valeur $ alors on écrit USD
Monnaie = Cells(ilign, 10).Value
If Monnaie = "$" Then
ActiveCell.Value = "USD"
End If

' la colonne k a pour format décimal avec 6 chiffres derrière la virgule
Range("K" & ilign).Activate
ActiveCell.Value = Val(ActiveCell.Value)
ActiveCell.NumberFormat = "0.000000"

' la colonne l a pour format décimal avec 2 chiffres derrière la virgule
Range("L" & ilign).Activate
ActiveCell.NumberFormat = "0.00"
ActiveCell.Value = Val(ActiveCell.Value)


' la colonne M a pour format décimal avec 2 chiffres derrière la virgule
Range("M" & ilign).Activate
ActiveCell.NumberFormat = "0.00"
ActiveCell.Value = Val(ActiveCell.Value)


'la colonne N a pour valeur G

Cells(ilign, 14) = "G"

'si le nombre de caractères de la colonna A = 1 alors la colonne A = 0 + valeur de la cellule

If Len(Cells(ilign, 1)) = 1 Then
trs = Cells(ilign, 1).Value
ActiveCell.Value = "0" & trs
End If

'on sélectionnes la colonne N et on rajoute une colonne
Range("N1").Select
Selection.EntireColumn.Insert

'si la colonne J <> eur

Range("J" & ilign).Activate
Select Case ActiveCell.Value
If Cells(ilign, 10) <> "EUR" Then
'la variable valdevise = colonne K
ValDevise = Cells(ilign, 11).Value
'si ta colonne L est supérieure à 0
If Cells(ilign, 12) > 0 Then
'la variable coll est égale à la valeur de ta cellule
coll = Cells(ilign, 12)
'la colonne l est égale à la conne L / taux de la colonne K
Cells(ilign, 12) = coll / ValDevise
'la colonne N est égale à la colonne L avant la division
Cells(ilign, 14) = coll
Else
' si la colonne L = 0
' colm = valeur de la colonne M
COLM = Cells(ilign, 13)
'la colonne M = M/ la taux de la colonne K
Cells(ilign, 13) = COLM / ValDevise
'la colonne N est égale à la colonne M avant la division
Cells(ilign, 14) = COLM
End If
End If



Next ilign

'un petit bip sonore
Beep

'on zomme à 100%
ActiveWindow.Zoom = 100
'on sélectionnes la cellule A1
Range("A1").Select
'on dit que la macro est terminée
Msg = MsgBox("Travail terminé", vbInformation + vbOKOnly, "Macro Ecritures Comptables")
Exit Sub
MesErreurs:
' ce message apparaît s'il y a des problèmes
Msg = MsgBox("Erreur d'exécution " & Err.Number & vbCrLf & vbCrLf & Err.Description, vbCritical + vbOKOnly, "Macro Ecritures Comptables")
End Sub
End Sub
0
Merci Mélanie. Je voudrais qu'ils soient en format avec deux chiffres après la virgule (ou après le point). Donc sans aucun traitement ni arrondi. Merci
0
melanie1324 Messages postés 1504 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
16 août 2011 à 16:34
donc si je te suis, tu ne veux aucun traitement sur les colonnes L et M, si c'est ca, voici ta macro :

On Error GoTo MesErreurs
Workbooks.OpenText Filename:="H:\ecriture.txt", Origin:=xlWindows, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 4), _
Array(3, 1), Array(4, 2), Array(5, 2), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 4), _
Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14, 1), Array(15, 1), Array( _
16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array(20, 1), Array(21, 1), Array(22, 1)) _
, TrailingMinusNumbers:=True
ActiveWindow.Zoom = 10

'on sélectionne la colonne B et I et on les mets au format jjmmmaa
Columns("B:B").Select
Selection.NumberFormat = "ddmmyy"
Columns("I:I").Select
Selection.NumberFormat = "ddmmyy"

' On compte le nombre de lignes du tableau et on le met dans la variable NBRLIGN
With ActiveSheet
.Activate
.Range("D" & .Range("D65536").End(xlUp)(1).Row).Select
End With

nbrlign = (ActiveSheet.Range("D65536").End(xlUp)(1).Row)


'on sélectionne la colonne A et G et on la emt au format d'une adresse mail
Columns("G:G").Select
Selection.NumberFormat = "@"
Columns("A:A").Select
Selection.NumberFormat = "@"

For ilign = 1 To nbrlign
'on va sélectionner la colonne C pour chacune des lignes
Range("C" & ilign).Activate
'la variable un est égale à la valeur de la cellule
un = ActiveCell.Value
'la variable deux est égale aux 3 premiers caractères à gauche de la cellule
deux = Left(ActiveCell.Value, 3)
'trois est égal au nombre de caractère de la cellule
trois = Len(ActiveCell.Value)
Select Case deux
'si deux = 401
Case "401"
Gtiers = Mid(un, 4, trois - 3)
'la cellule = 401000
ActiveCell.Value = "401000"
Range("G" & ilign).Activate
ActiveCell.Value = Gtiers

Case "411"
'si deux = 411
Gtiers = Mid(un, 4, trois - 3)
'la cellule = 411000
ActiveCell.Value = "411000"
Range("G" & ilign).Activate
ActiveCell.Value = Gtiers
End Select


' si en colonne j tu as la valeur $ alors on écrit USD
Monnaie = Cells(ilign, 10).Value
If Monnaie = "$" Then
ActiveCell.Value = "USD"
End If

' la colonne k a pour format décimal avec 6 chiffres derrière la virgule
Range("K" & ilign).Activate
ActiveCell.Value = Val(ActiveCell.Value)
ActiveCell.NumberFormat = "0.000000"

' la colonne l a pour format décimal avec 2 chiffres derrière la virgule
Range("L" & ilign).Activate
ActiveCell.NumberFormat = "0.00"
ActiveCell.Value = Val(ActiveCell.Value)


' la colonne M a pour format décimal avec 2 chiffres derrière la virgule
Range("M" & ilign).Activate
ActiveCell.NumberFormat = "0.00"
ActiveCell.Value = Val(ActiveCell.Value)


'la colonne N a pour valeur G

Cells(ilign, 14) = "G"

'si le nombre de caractères de la colonna A = 1 alors la colonne A = 0 + valeur de la cellule

If Len(Cells(ilign, 1)) = 1 Then
trs = Cells(ilign, 1).Value
ActiveCell.Value = "0" & trs
End If




Next ilign

'un petit bip sonore
Beep

'on zomme à 100%
ActiveWindow.Zoom = 100
'on sélectionnes la cellule A1
Range("A1").Select
'on dit que la macro est terminée
Msg = MsgBox("Travail terminé", vbInformation + vbOKOnly, "Macro Ecritures Comptables")
Exit Sub
MesErreurs:
' ce message apparaît s'il y a des problèmes
Msg = MsgBox("Erreur d'exécution " & Err.Number & vbCrLf & vbCrLf & Err.Description, vbCritical + vbOKOnly, "Macro Ecritures Comptables")
End Sub
End Sub
0
Mélanie,
cela ne fonctionne toujours pas. La macro plante bien avant mon problème de chiffres et de décimales.

Voici la ligne qui est surlignée en bleue

If Cells(ilign, 10) <> "EUR" Then

et voici le message qui s'affiche :

Compile error : Statements and labels invalid between Select Case and first Case

Peux-tu m'aider ?
merci
mh
0
melanie1324 Messages postés 1504 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
17 août 2011 à 10:20
bonjour,

tu n'as pas du recopier le bon code parce que cette ligne n'y est plus.
En gros, efface tout ton code et mets uniquement celui-ci.

On Error GoTo MesErreurs
Workbooks.OpenText Filename:="H:\ecriture.txt", Origin:=xlWindows, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 4), _
Array(3, 1), Array(4, 2), Array(5, 2), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 4), _
Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14, 1), Array(15, 1), Array( _
16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array(20, 1), Array(21, 1), Array(22, 1)) _
, TrailingMinusNumbers:=True
ActiveWindow.Zoom = 10

'on sélectionne la colonne B et I et on les mets au format jjmmmaa
Columns("B:B").Select
Selection.NumberFormat = "ddmmyy"
Columns("I:I").Select
Selection.NumberFormat = "ddmmyy"

' On compte le nombre de lignes du tableau et on le met dans la variable NBRLIGN
With ActiveSheet
.Activate
.Range("D" & .Range("D65536").End(xlUp)(1).Row).Select
End With

nbrlign = (ActiveSheet.Range("D65536").End(xlUp)(1).Row)


'on sélectionne la colonne A et G et on la emt au format d'une adresse mail
Columns("G:G").Select
Selection.NumberFormat = "@"
Columns("A:A").Select
Selection.NumberFormat = "@"

For ilign = 1 To nbrlign
'on va sélectionner la colonne C pour chacune des lignes
Range("C" & ilign).Activate
'la variable un est égale à la valeur de la cellule
un = ActiveCell.Value
'la variable deux est égale aux 3 premiers caractères à gauche de la cellule
deux = Left(ActiveCell.Value, 3)
'trois est égal au nombre de caractère de la cellule
trois = Len(ActiveCell.Value)
Select Case deux
'si deux = 401
Case "401"
Gtiers = Mid(un, 4, trois - 3)
'la cellule = 401000
ActiveCell.Value = "401000"
Range("G" & ilign).Activate
ActiveCell.Value = Gtiers

Case "411"
'si deux = 411
Gtiers = Mid(un, 4, trois - 3)
'la cellule = 411000
ActiveCell.Value = "411000"
Range("G" & ilign).Activate
ActiveCell.Value = Gtiers
End Select


' si en colonne j tu as la valeur $ alors on écrit USD
Monnaie = Cells(ilign, 10).Value
If Monnaie = "$" Then
ActiveCell.Value = "USD"
End If

' la colonne k a pour format décimal avec 6 chiffres derrière la virgule
Range("K" & ilign).Activate
ActiveCell.Value = Val(ActiveCell.Value)
ActiveCell.NumberFormat = "0.000000"

' la colonne l a pour format décimal avec 2 chiffres derrière la virgule
Range("L" & ilign).Activate
ActiveCell.NumberFormat = "0.00"
ActiveCell.Value = Val(ActiveCell.Value)


' la colonne M a pour format décimal avec 2 chiffres derrière la virgule
Range("M" & ilign).Activate
ActiveCell.NumberFormat = "0.00"
ActiveCell.Value = Val(ActiveCell.Value)


'la colonne N a pour valeur G

Cells(ilign, 14) = "G"

'si le nombre de caractères de la colonna A = 1 alors la colonne A = 0 + valeur de la cellule

If Len(Cells(ilign, 1)) = 1 Then
trs = Cells(ilign, 1).Value
ActiveCell.Value = "0" & trs
End If




Next ilign

'un petit bip sonore
Beep

'on zomme à 100%
ActiveWindow.Zoom = 100
'on sélectionnes la cellule A1
Range("A1").Select
'on dit que la macro est terminée
Msg = MsgBox("Travail terminé", vbInformation + vbOKOnly, "Macro Ecritures Comptables")
Exit Sub
MesErreurs:
' ce message apparaît s'il y a des problèmes
Msg = MsgBox("Erreur d'exécution " & Err.Number & vbCrLf & vbCrLf & Err.Description, vbCritical + vbOKOnly, "Macro Ecritures Comptables")
End Sub
End Sub
0