VB chiffre entier au lieu de chiffre décimal

mh -  
melanie1324 Messages postés 1561 Statut Membre -
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

2 réponses

  1. melanie1324 Messages postés 1561 Statut Membre 156
     
    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
    1. melanie1324 Messages postés 1561 Statut Membre 156
       
      pour comprendre également, rapetisse cette fenêtre et appuie sur F8, ca exécutera la macro ligne par ligne.
      0
    2. mh
       
      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
    3. melanie1324 Messages postés 1561 Statut Membre 156
       
      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
    4. mh
       
      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
  2. melanie1324 Messages postés 1561 Statut Membre 156
     
    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
    1. mh
       
      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
    2. melanie1324 Messages postés 1561 Statut Membre 156
       
      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