Copier pour chaque ligne non nulle les valeurs des colonnes

Bonjour everybody,

voici un code simple: Je cherche à copier pour chaque ligne non nulle les valeurs des colonnes 1 à 5 depuis la sheet "instrum" vers la sheet "macro1".

Merci de ne pas se moquer de moi car je sais que l'erreur est sans doute assez simple.

Sub select_instrum()

Dim nb_line As Integer

Sheets("instrum").Select

nb_line = ActiveSheet.Range("A65536").End(xlUp).Row

MsgBox nb_line

For i = 1 To nb_line

j = 1

If (Sheets("instrum").Cells(i, 1) Is Empty) Then

Sheets("instrum").Ranges(Cells(i, 1), Cells(i, 5)).Select

Selection.Copy

Sheets("macro1").Cells(j, 1).past

j = j + 1

End If

Next i

End Sub

Bonjour,

proposition de corrections (non testées) des corrections

Sub select_instrum()

Dim nb_line As Integer

Sheets("instrum").Select

nb_line = ActiveSheet.Range("A65536").End(xlUp).Row

MsgBox nb_line

For i = 1 To nb_line
j = 1
If Sheets("instrum").Cells(i, 1) <>"" Then
Sheets("instrum").Range("A" & i & ":E" & i).copy  Sheets("macro1").Cells(j, 1)
j = j + 1
End If
Next i

End Sub

Désolé ça ne marche pas...

438 - object does not support this property or method....

Et le débugueur s'arrêt après le Then du IF THEN ELSE

Bonjour,

code corrigé dans mon message précédent.

oui, j'avais vu mais le code ne marche pas...

Bonjour,

comme quoi, corriger sans tester est une erreur, il faut déplacer l'instruction j=1, voir correction ci-dessous

Sub select_instrum()

Dim nb_line As Integer

Sheets("instrum").Select

nb_line = ActiveSheet.Range("A65536").End(xlUp).Row

MsgBox nb_line
j = 1
For i = 1 To nb_line

If Sheets("instrum").Cells(i, 1) <>"" Then
Sheets("instrum").Range("A" & i & ":E" & i).copy  Sheets("macro1").Cells(j, 1)
j = j + 1
End If
Next i

End Sub
Rechercher des sujets similaires à "copier chaque ligne nulle valeurs colonnes"