Copier une celulle sur deux dans une colonne

Bonjour,

mon problème est simple mais je ne parviens pas à la résoudre. J'ai dans la première colonne de mon tableau une liste de valeur.

Une ligne sur deux (les lignes impaires) ont des chiffres, les autres lignes (lignes paires) ont du texte).

Je cherche à copier tous les valeurs chiffrées dans la colonne A de ma deuxième feuille. Toutes les valeurs texte dans la colonne B.

Ainsi A1 et A2 (qui sont en rapport) se retrouverait en A1 et B1.

Je me suis lancé dans une macro :

Sub Macro1()

Dim i As Integer

For i = 2 To 500

Sheets("Feuil1").Active

If IsNumber(Range("A" & i)) = True Then '

Range("A" & i).Select

Selection.Copy

Sheets("Feuil2").Select

Range("A" & i).Select

ActiveSheet.Paste

Else

Range("A" & i).Select

Selection.Copy

Sheets("Feuil2").Select

Range("B" & i).Select

ActiveSheet.Paste

End If

End Sub

J'obtiens un message d'erreur : "Erreur de compilation: sub ou Function non definie.

Merci d'avance pour votre aide

Bonjour,

la fonction "IsNumber" n'existe pas en VBA c'est la fonction "IsNumeric" que vous voulez utiliser je pense ^^

Salut Albelo,

remplace ta ligne

If IsNumber(Range("A" & i)) = True Then '

par :

if IsNumeric(Range("A" & i)) Then

Ah exact, c'est une erreur. merci

par contre j'ai une erreur d'execution '438', sauriez vous de quoi cela vient ?

Sub Macro1()

Dim i As Integer

For i = 2 To 500

Sheets("Feuil1").Active

If IsNumeric(Range("A" & i)) = True Then '

Range("A" & i).Select

Selection.Copy

Sheets("Feuil2").Select

Range("A" & i).Select

ActiveSheet.Paste

Else

Range("A" & i).Select

Selection.Copy

Sheets("Feuil2").Select

Range("B" & i).Select

ActiveSheet.Paste

End If

Next i

End Sub


J'ai effectué la modif, mais toujours cette erreur 438...

Sub Macro1()

Dim i As Integer

For i = 2 To 500

Sheets("Feuil1").Active

If IsNumeric(Range("A" & i)) Then '

Range("A" & i).Select

Selection.Copy

Sheets("Feuil2").Select

Range("A" & i).Select

ActiveSheet.Paste

Else

Range("A" & i).Select

Selection.Copy

Sheets("Feuil2").Select

Range("B" & i).Select

ActiveSheet.Paste

End If

Next i

End Sub

remplace tout sa

 Sheets("Feuil1").Active
If IsNumeric(Range("A" & i)) = True Then '
Range("A" & i).Select
Selection.Copy
Sheets("Feuil2").Select
Range("A" & i).Select
ActiveSheet.Paste
else 
/////// la suite
 

par juste

 If IsNumeric(Range("A" & i)) = True Then 
Sheets("Feuil1").range("A" & i) = Sheets("Feuil2").range("A" & i)

else
Sheets("Feuil1").range("A" & i) = Sheets("Feuil2").range("B" & i)
end if

Malheureusement toujours cette erreur 438...

oups deja un petit erreur dans mon code :

changer sa

If IsNumeric(Range("A" & i)) = True Then 
Sheets("Feuil1").range("A" & i) = Sheets("Feuil2").range("A" & i)

else
Sheets("Feuil1").range("A" & i) = Sheets("Feuil2").range("B" & i)
end if

par

If IsNumeric(Range("A" & i)) = True Then 
Sheets("Feuil2").range("A" & i) = Sheets("Feuil1").range("A" & i)

else
Sheets("Feuil2").range("A" & i) = Sheets("Feuil1").range("B" & i)
end if

j'ai inverser l'ordre des feuilles


un petit cour ici

https://forum.excel-pratique.com/cours-astuces/erreur-438-t60484.html

nickel cela fonctionne, merci beaucoup

Rechercher des sujets similaires à "copier celulle deux colonne"