Convertir en nombre par VBA

Le
Sunburn
Bonjour,
je souhaite convertir en nombre la premiere colonne de mon fichier.
je m'explique.
j'ai une macro qui me demande de selectionner un fichier.
Sur ce fichier, je voudrais convertir en nombre la premiere colone, puis
faire les traitements qui sont faits par cette macro. Mais comment puis-je
faire ??

Merci de votre aide.
YANN

PS : ma macro actuelle

Sub ImportBal()
rep = MsgBox("Ce module va vous permettre d'importer la balance en
choisissant le fichier de votre choix." _
& vbLf & "Etes-vous sûr de vouloir continuer", vbYesNo)
If rep = vbNo Then Exit Sub
Chemin = ActiveWorkbook.path
ChDrive (Mid(ActiveWorkbook.path, 1, 1))
ChDir (Chemin)

Workbooks.Open Filename:=Application.GetOpenFilename("(*.xls),")
ActiveSheet.Range("A2",
ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Address).Copy
ThisWorkbook.Sheets("Balances").Range("A3").PasteSpecial Paste:=xlPasteValues
ActiveWorkbook.Close

End Sub
-
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel.C
Le #18342971
Bonjour.

Le code suivant fait le travail, mais remplace les formules par leurs
valeurs (si une formule renvoie du texte, la conversion ne se ferait
pas). Si tu veux conserver les formules, enlèce les deux premières
lignes du code. J'ai utillisé la cellule B1, tu peux modifier.

Range("A1", [A65000].End(xlUp)).Copy
Range("A1", [A65000].End(xlUp)).PasteSpecial xlPasteValues
[B1] = 1
[B1].Copy
Range("A1", [A65000].End(xlUp)).PasteSpecial xlPasteAll, xlMultiply
[B1] = ""

Cordialement.
Daniel

Bonjour,
je souhaite convertir en nombre la premiere colonne de mon fichier.
je m'explique.
j'ai une macro qui me demande de selectionner un fichier.
Sur ce fichier, je voudrais convertir en nombre la premiere colone, puis
faire les traitements qui sont faits par cette macro. Mais comment puis-je
faire ??

Merci de votre aide.
YANN

PS : ma macro actuelle
------
Sub ImportBal()
rep = MsgBox("Ce module va vous permettre d'importer la balance en
choisissant le fichier de votre choix." _
& vbLf & "Etes-vous sûr de vouloir continuer", vbYesNo)
If rep = vbNo Then Exit Sub
Chemin = ActiveWorkbook.path
ChDrive (Mid(ActiveWorkbook.path, 1, 1))
ChDir (Chemin)

Workbooks.Open Filename:=Application.GetOpenFilename("(*.xls),")
ActiveSheet.Range("A2",
ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Address).Copy
ThisWorkbook.Sheets("Balances").Range("A3").PasteSpecial Paste:=xlPasteValues
ActiveWorkbook.Close

End Sub
----


michdenis
Le #18343331
Ta procédure, je l'aurais écrite comme ceci :

'------------------------------------------
Sub test()
Dim Fichier As String, X
Dim DerLig As Long, DerCol As Integer
Dim Chemin As String, Wk As Workbook
If MsgBox("Ce module va vous permettre " & _
"d'importer la balance en choisissant le " & _
"fichier de votre choix." & vbLf & _
"Etes-vous sûr de vouloir continuer", vbYesNo) = vbNo Then
Exit Sub
End If
Chemin = ActiveWorkbook.Path
If Chemin = "" Then
Chemin = Application.DefaultFilePath
End If
ChDrive (Mid(ActiveWorkbook.Path, 1, 1))
ChDir (Chemin)
Application.ScreenUpdating = False
Fichier = Application.GetOpenFilename("(*.xls),xls", , , , False)
If TypeName(Fichier) = "Boolean" Then
MsgBox "Opération annulée. Aucun fichier sélectionné"
Exit Sub
Else
Set Wk = Workbooks.Open(Fichier)
End If
With Wk.ActiveSheet
DerLig = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
DerCol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
X = .Range(.Range("A2"), .Cells(DerLig, DerCol))
End With
With ThisWorkbook.Sheets("Feuil1")
.Range("A3").Resize(UBound(X, 1), UBound(X, 2)) = X
End With
Wk.Close

End Sub
'------------------------------------------

Pour ce qui est de transformer ce que contient la colonne A
en numérique, faudrait d'abord savoir ce qu'il y a dedans.



"Sunburn" news:
Bonjour,
je souhaite convertir en nombre la premiere colonne de mon fichier.
je m'explique.
j'ai une macro qui me demande de selectionner un fichier.
Sur ce fichier, je voudrais convertir en nombre la premiere colone, puis
faire les traitements qui sont faits par cette macro. Mais comment puis-je
faire ??

Merci de votre aide.
YANN

PS : ma macro actuelle
------
Sub ImportBal()
rep = MsgBox("Ce module va vous permettre d'importer la balance en
choisissant le fichier de votre choix." _
& vbLf & "Etes-vous sûr de vouloir continuer", vbYesNo)
If rep = vbNo Then Exit Sub
Chemin = ActiveWorkbook.path
ChDrive (Mid(ActiveWorkbook.path, 1, 1))
ChDir (Chemin)

Workbooks.Open Filename:=Application.GetOpenFilename("(*.xls),")
ActiveSheet.Range("A2",
ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Address).Copy
ThisWorkbook.Sheets("Balances").Range("A3").PasteSpecial
Paste:=xlPasteValues
ActiveWorkbook.Close

End Sub
----
Sunburn
Le #18343501
Bonjour,
alors, dans ma première colonne, ce sont uniquement des chiffres.
mais il y a le petit triangle vert qui me propose de les convertir en nombre.
C'est cette opération que je souhaite faire.

Merci
YANN
Sunburn
Le #18343611
Euh, en fait, la colonne A ne contient pas de formule. ce sont des chiffres.
mais j'ai un petit onglet vert qui me propose de les convertir en nombre.
c'est cette opération que je souhaite réaliser.
Merci.
YANN
PS : j'en ai parlé aussi à michdenis qui m'aide sur ce post.

"Daniel.C" a écrit :

Bonjour.

Le code suivant fait le travail, mais remplace les formules par leurs
valeurs (si une formule renvoie du texte, la conversion ne se ferait
pas). Si tu veux conserver les formules, enlèce les deux premières
lignes du code. J'ai utillisé la cellule B1, tu peux modifier.

Range("A1", [A65000].End(xlUp)).Copy
Range("A1", [A65000].End(xlUp)).PasteSpecial xlPasteValues
[B1] = 1
[B1].Copy
Range("A1", [A65000].End(xlUp)).PasteSpecial xlPasteAll, xlMultiply
[B1] = ""

Cordialement.
Daniel

> Bonjour,
> je souhaite convertir en nombre la premiere colonne de mon fichier.
> je m'explique.
> j'ai une macro qui me demande de selectionner un fichier.
> Sur ce fichier, je voudrais convertir en nombre la premiere colone, puis
> faire les traitements qui sont faits par cette macro. Mais comment puis-je
> faire ??
>
> Merci de votre aide.
> YANN
>
> PS : ma macro actuelle
> ------
> Sub ImportBal()
> rep = MsgBox("Ce module va vous permettre d'importer la balance en
> choisissant le fichier de votre choix." _
> & vbLf & "Etes-vous sûr de vouloir continuer", vbYesNo)
> If rep = vbNo Then Exit Sub
> Chemin = ActiveWorkbook.path
> ChDrive (Mid(ActiveWorkbook.path, 1, 1))
> ChDir (Chemin)
>
> Workbooks.Open Filename:=Application.GetOpenFilename("(*.xls),")
> ActiveSheet.Range("A2",
> ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Address).Copy
> ThisWorkbook.Sheets("Balances").Range("A3").PasteSpecial Paste:=xlPasteValues
> ActiveWorkbook.Close
>
> End Sub
> ----





Daniel.C
Le #18343601
Alors :

[B1] = 1
[B1].Copy
Range("A1", [A65000].End(xlUp)).PasteSpecial xlPasteAll, xlMultiply
[B1] = ""

Euh, en fait, la colonne A ne contient pas de formule. ce sont des chiffres.
mais j'ai un petit onglet vert qui me propose de les convertir en nombre.
c'est cette opération que je souhaite réaliser.
Merci.
YANN
PS : j'en ai parlé aussi à michdenis qui m'aide sur ce post.

"Daniel.C" a écrit :

Bonjour.

Le code suivant fait le travail, mais remplace les formules par leurs
valeurs (si une formule renvoie du texte, la conversion ne se ferait
pas). Si tu veux conserver les formules, enlèce les deux premières
lignes du code. J'ai utillisé la cellule B1, tu peux modifier.

Range("A1", [A65000].End(xlUp)).Copy
Range("A1", [A65000].End(xlUp)).PasteSpecial xlPasteValues
[B1] = 1
[B1].Copy
Range("A1", [A65000].End(xlUp)).PasteSpecial xlPasteAll, xlMultiply
[B1] = ""

Cordialement.
Daniel

Bonjour,
je souhaite convertir en nombre la premiere colonne de mon fichier.
je m'explique.
j'ai une macro qui me demande de selectionner un fichier.
Sur ce fichier, je voudrais convertir en nombre la premiere colone, puis
faire les traitements qui sont faits par cette macro. Mais comment puis-je
faire ??

Merci de votre aide.
YANN

PS : ma macro actuelle
------
Sub ImportBal()
rep = MsgBox("Ce module va vous permettre d'importer la balance en
choisissant le fichier de votre choix." _
& vbLf & "Etes-vous sûr de vouloir continuer", vbYesNo)
If rep = vbNo Then Exit Sub
Chemin = ActiveWorkbook.path
ChDrive (Mid(ActiveWorkbook.path, 1, 1))
ChDir (Chemin)

Workbooks.Open Filename:=Application.GetOpenFilename("(*.xls),")
ActiveSheet.Range("A2",
ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Address).Copy
ThisWorkbook.Sheets("Balances").Range("A3").PasteSpecial
Paste:=xlPasteValues ActiveWorkbook.Close

End Sub
----









Daniel.j
Le #18344061
Pour convertir du texte

Sub TexteEnChiffre()
Dim maZone As Range
Set maZone = Range("A1:" & Range("A100").End(xlUp).Address) 'Définit plage
maZone.Select
Dim unecellule As Object
For Each unecellule In Selection
valeur = ActiveCell.Value
If valeur = "" Then 'Saute cellules vides
GoTo suite
End If
valnum = CDbl(valeur) 'convertit texte en chiffre
unecellule.Value = valnum
suite:
ActiveCell.Offset(1, 0).Select
Next
End Sub

Daniel
--
FAQ MPFE
http://dj.joss.free.fr/faq.htm
VBAXL
http://dj.joss.free.fr/

"Sunburn" news:
Bonjour,
alors, dans ma première colonne, ce sont uniquement des chiffres.
mais il y a le petit triangle vert qui me propose de les convertir en
nombre.
C'est cette opération que je souhaite faire.

Merci
YANN


michdenis
Le #18344391
Cette procédure devrait aussi transformer tes cellules en texte
en colonne A:A

'-------------------------------------------
Sub test()
Dim Fichier As String, X
Dim DerLig As Long, DerCol As Integer
Dim Chemin As String, Wk As Workbook
If MsgBox("Ce module va vous permettre " & _
"d'importer la balance en choisissant le " & _
"fichier de votre choix." & vbLf & vbLf & _
"Etes-vous sûr de vouloir continuer", vbYesNo) = vbNo Then
Exit Sub
End If
Chemin = ActiveWorkbook.Path
If Chemin = "" Then
Chemin = Application.DefaultFilePath
End If
ChDrive (Mid(ActiveWorkbook.Path, 1, 1))
ChDir (Chemin)
Application.ScreenUpdating = False
Fichier = Application.GetOpenFilename("(*.xls),xls", , , , False)
If TypeName(Fichier) = "Boolean" Then
MsgBox "Opération annulée. Aucun fichier sélectionné"
Exit Sub
Else
Set Wk = Workbooks.Open(Fichier)
End If
With Wk.ActiveSheet
DerLig = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
DerCol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
X = .Range(.Range("A2"), .Cells(DerLig, DerCol))
End With
With ThisWorkbook.Sheets("Balances")
.Range("A3").Resize(UBound(X, 1)).ClearContents
.Range("A3").Resize(UBound(X, 1)).NumberFormat = "General"
.Range("A3").Resize(UBound(X, 1), UBound(X, 2)) = X
End With
Wk.Close False
End Sub
'-------------------------------------------



"Sunburn" news:
Bonjour,
alors, dans ma première colonne, ce sont uniquement des chiffres.
mais il y a le petit triangle vert qui me propose de les convertir en
nombre.
C'est cette opération que je souhaite faire.

Merci
YANN
Sunburn
Le #18344521
Re,
je viens d'essayer : il me met "erreur d'execution 13 : incompatibilité de
type"
??
Merci

"Daniel.j" a écrit :

Pour convertir du texte

Sub TexteEnChiffre()
Dim maZone As Range
Set maZone = Range("A1:" & Range("A100").End(xlUp).Address) 'Définit plage
maZone.Select
Dim unecellule As Object
For Each unecellule In Selection
valeur = ActiveCell.Value
If valeur = "" Then 'Saute cellules vides
GoTo suite
End If
valnum = CDbl(valeur) 'convertit texte en chiffre
unecellule.Value = valnum
suite:
ActiveCell.Offset(1, 0).Select
Next
End Sub

Daniel
--
FAQ MPFE
http://dj.joss.free.fr/faq.htm
VBAXL
http://dj.joss.free.fr/

"Sunburn" news:
> Bonjour,
> alors, dans ma première colonne, ce sont uniquement des chiffres.
> mais il y a le petit triangle vert qui me propose de les convertir en
> nombre.
> C'est cette opération que je souhaite faire.
>
> Merci
> YANN





Daniel.j
Le #18344841
essaie en ajoutant
On Error Resume Next
avant cette ligne
valnum = CDbl(valeur) 'convertit texte en chiffre

Daniel


"Sunburn" news:
Re,
je viens d'essayer : il me met "erreur d'execution 13 : incompatibilité de
type"
??
Merci

"Daniel.j" a écrit :

Pour convertir du texte

Sub TexteEnChiffre()
Dim maZone As Range
Set maZone = Range("A1:" & Range("A100").End(xlUp).Address) 'Définit
plage
maZone.Select
Dim unecellule As Object
For Each unecellule In Selection
valeur = ActiveCell.Value
If valeur = "" Then 'Saute cellules vides
GoTo suite
End If
valnum = CDbl(valeur) 'convertit texte en chiffre
unecellule.Value = valnum
suite:
ActiveCell.Offset(1, 0).Select
Next
End Sub

Daniel
--
FAQ MPFE
http://dj.joss.free.fr/faq.htm
VBAXL
http://dj.joss.free.fr/

"Sunburn" news:
> Bonjour,
> alors, dans ma première colonne, ce sont uniquement des chiffres.
> mais il y a le petit triangle vert qui me propose de les convertir en
> nombre.
> C'est cette opération que je souhaite faire.
>
> Merci
> YANN







Sunburn
Le #18344961
C'est impecable, magnifique, ça fonctionne du toner !!!
Merci encore.
YANN

"michdenis" a écrit :

Cette procédure devrait aussi transformer tes cellules en texte
en colonne A:A

'-------------------------------------------
Sub test()
Dim Fichier As String, X
Dim DerLig As Long, DerCol As Integer
Dim Chemin As String, Wk As Workbook
If MsgBox("Ce module va vous permettre " & _
"d'importer la balance en choisissant le " & _
"fichier de votre choix." & vbLf & vbLf & _
"Etes-vous sûr de vouloir continuer", vbYesNo) = vbNo Then
Exit Sub
End If
Chemin = ActiveWorkbook.Path
If Chemin = "" Then
Chemin = Application.DefaultFilePath
End If
ChDrive (Mid(ActiveWorkbook.Path, 1, 1))
ChDir (Chemin)
Application.ScreenUpdating = False
Fichier = Application.GetOpenFilename("(*.xls),xls", , , , False)
If TypeName(Fichier) = "Boolean" Then
MsgBox "Opération annulée. Aucun fichier sélectionné"
Exit Sub
Else
Set Wk = Workbooks.Open(Fichier)
End If
With Wk.ActiveSheet
DerLig = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
DerCol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
X = .Range(.Range("A2"), .Cells(DerLig, DerCol))
End With
With ThisWorkbook.Sheets("Balances")
.Range("A3").Resize(UBound(X, 1)).ClearContents
.Range("A3").Resize(UBound(X, 1)).NumberFormat = "General"
.Range("A3").Resize(UBound(X, 1), UBound(X, 2)) = X
End With
Wk.Close False
End Sub
'-------------------------------------------



"Sunburn" news:
Bonjour,
alors, dans ma première colonne, ce sont uniquement des chiffres.
mais il y a le petit triangle vert qui me propose de les convertir en
nombre.
C'est cette opération que je souhaite faire.

Merci
YANN




Publicité
Poster une réponse
Anonyme