Ma macro ne retourne pas ce que je désire

Bonjour à toutes et à tous,

Etant débutante avec VBA, j'essaie de me familiariser avec ce langage.

C'est pourquoi j'ai essayé de faire une macro simple or celle-ci ne retourne pas ce que je désire.

Voici le code de la macro :

Sub MultiplieParMille()

Dim Tabl

Dim i As Integer, j As Integer

Tabl = Range("A1:A100").Value

For i = 1 to 100

For j = 1 to 1

If IsNotNumeric = False Then

Tabl(i, j) = Tabl(i,j)*1000

End If

End j

End i

Application.ScreenUpdating=False

Range("B1:B100")=Tabl

End Sub

Ma macro me retourne bien les valeurs de la colonne A en colonne B mais celles-ci ne sont pas multiplées par mille,

si quelqu'un peut m'éclairer ?

Merci d'avance.

Remplaces :

If IsNotNumeric = False Then

Par :

If IsNumeric(Tabl(i, j)) Then

où selon le cas :

If Not IsNumeric(Tabl(i, j)) Then

Merci pour votre réponse cela fonctionne à merveille !


Voici ma macro désormais :

Sub MultiplieParMille()

Dim Tabl

Dim i As Integer, j As Integer

Tabl = Range("A:A").Value

For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row

For j = 1 To 1

If IsNumeric(Tabl(i, j)) Then

Tabl(i, j) = Tabl(i, j) * 1000

End If

Next j

Next i

Application.ScreenUpdating = False

Range("B:B") = Tabl

End Sub

Mon but maintenant de l'améliorer !

Bonjour,

Si j'ai bien compris ta demande ...

Sub MultiplieParMille()
Dim Tabl As Variant
Dim i As Long
Dim x As Long
x = Range("A65536").End(xlUp).Row
Tabl = Range("A1:A" & x)
  For i = 1 To x
      If IsNumeric(Tabl(i, 1)) Then
        Tabl(i, 1) = Tabl(i, 1) * 1000
      End If
  Next i
Range("B1:B" & x) = Tabl
End Sub

Merci beaucoup ! Maintenant j'essaie de faire : Si la cellule est vide dans la colonne A, alors la cellule doit être vide dans la colonne B

mais pour l'instant j'obtiens un 0 dans la cellule de la colonne B quand la cellule de la colonne A est vide. Comment faire pour régler ce problème ?!

Option Explicit

Sub MultiplieParMille()

Dim Tabl As Variant

Dim i As Long

Dim x As Long

x = Range("A65536").End(xlUp).Row

Tabl = Range("A1:A" & x)

For i = 1 To x

If IsNumeric(Tabl(i, 1)) Then

Tabl(i, 1) = Tabl(i, 1) * 1000

ElseIf Tabl(i, 1) = "" Then

Tabl(i, 1) = ""

End If

Next i

Range("B1:B" & x) = Tabl

End Sub

Re,

Sans ton explication ... difficile de deviner ...

Sub MultiplieParMille()
Dim Tabl As Variant
Dim i As Long
Dim x As Long
x = Range("A65536").End(xlUp).Row
Tabl = Range("A1:A" & x)
  For i = 1 To x
      If IsNumeric(Tabl(i, 1)) And Not IsEmpty(Tabl(i, 1)) Then
        Tabl(i, 1) = Tabl(i, 1) * 1000
      End If
  Next i
Range("B1:B" & x) = Tabl
End Sub

Merci beaucoup James !!! J'aimerai un jour avoir le même niveau que le votre !

Re,

Content que cela fonctionne ...

Merci pour tes gentils remerciements ...

Rechercher des sujets similaires à "macro retourne pas que desire"