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
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
A voir également:
- VB chiffre entier au lieu de chiffre décimal
- Excel trier par ordre croissant chiffre - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Application pour écrire les chiffre en lettre - Télécharger - Outils professionnels
- Vb - Télécharger - Langages
- Trouver un lieu avec coordonnées gps - Guide
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
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
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
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
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
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
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
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
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
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
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
16 août 2011 à 13:51
16 août 2011 à 14:46
16 août 2011 à 14:58
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
16 août 2011 à 16:28