Copier la valeur d'une cellule si <> de 0

Bonjour le forum,

Je chercher à contrôler la valeur d'une cellule pour la copier dans une autre cellule. Si la valeur de la cellule B1 est différent de 0 alors la valeur de B est recopié en A1 sinon pas de recopie et ainsi de suite jusqu'à la fin de la colonne B.

J'ai un début de macro qui recopie la valeur de B1 mais la condition différent de zéro ne fonctionne pas. Si une bonne âme pouvait me mettre sur la piste.

Sub horaires()
Dim nblig As Long
Dim nlig As Long
nblig = Range("b" & Rows.Count).End(xlUp).Row
nlig = Range("a" & Rows.Count).End(xlUp).Row
On Error Resume Next
If Range("b1:b" & nblig) <> 0 Then
Range("a1:a" & nlig).Value = Range("b1:b" & nblig).Value
End If
End Sub

Merci beaucoup.

T.

Bonjour,

Si j'ai compris. A savoir:

Recopier les valeurs non-vides de la colonne B en colonne A.

Cdlt

Option Explicit
Public Sub horaires()
Dim nblig As Long, i As Long
    Application.ScreenUpdating = False
    nblig = Range("B" & Rows.Count).End(xlUp).Row
    For i = 1 To nblig Step 1
        If Cells(i, "B") <> 0 Then Cells(i, "A") = Cells(i, "B")
        nlig = nlig + 1
    Next
End Sub

Bonjour Jean-Eric,

Merci pour ton aide. La macro fonctionne très bien, j'ai même pu l'adapter pour un autre besoin.

Bonne soirée et bon week end.

T.

RE bonsoir le forum,

Je suis désolée de réouvrir le post mais il y a un petit problème. Comment fait-on pour lui indiquer de commencer le contrôle qu'à partir de la ligne 13 ?

Merci encore.

T.

Re,

Que veux-tu?

Option Explicit
Public Sub horaires()
Dim nblig As Long, i As Long
    Application.ScreenUpdating = False
    nblig = Range("B" & Rows.Count).End(xlUp).Row
    For i = 13 To nblig Step 1
        If Cells(i, "B") <> 0 Then Cells(i, "A") = Cells(i, "B")
    Next
End Sub
 

ou

Option Explicit
Public Sub horaires()
Dim nblig As Long, Ligne as long,i As Long
    Application.ScreenUpdating = False
    nblig = Range("B" & Rows.Count).End(xlUp).Row
    Ligne=1
    For i =13 To nblig Step 1
        If Cells(i, "B") <> 0 Then Cells(Ligne, "A") = Cells(i, "B")
        Ligne = Ligne+1
    Next
End Sub
 

Re Bonsoir Jean-Eric,

C'est la première solution la bonne. J'ai fait le test sur le fichier définitif.

Merci beaucoup pour ta patience.

T.

Rechercher des sujets similaires à "copier valeur"