Copier juste les chiffres si il trouve texte il passe

Bonsoir l'équipe.

je suis débutant en programmation VBA.

si vous pouvez m'aider je serai reconnaissant.

J'ai des cellules dans le fichier remplie avec des chiffres ou vide ou texte. pas de mélange de deux format texte et chiffres.

je veux rajouter dans le code existant un code qui permet copier que les chiffres mais pas le vide il passe au suivant et aussi pareil pour les cellule contenant du texte il passe en gros il me copier que les chiffres et il me copie ça dans une autre feuille.

j'espère que j'étais clair

merci d'avance pour votre aide

Bonsoir,

regarder du côté de l'instruction IsNumeric()

@ bientôt

LouReeD

Hello,

Voici un code qui fait teste la colonne A sur 3 lignes et qui insère le nombre dans la colonne B de la même ligne.

Faudra adapter avec la feuille de destination

    For i = 1 To 3
        If Not IsEmpty(Range("a" & i)) And _
            IsNumeric(Range("a" & i)) Then Range("B" & i) = Range("a" & i)
    Next i

Edit : Salut Loureed

hello

merci pour votre retour

malheureusement j'ai pas pu intégré ça dans mon code voilà mon code :

Feuil14.Range("N2:N15").ClearContents
IsNumeric(Feuil5.Range("Z9:Z40")).AdvancedFilter xlFilterCopy, CopyToRange:=Feuil14.Range("N2:N15"), Unique:=True
On Error Resume Next
Feuil5.Range("I4") = Feuil14.Range("N3").Value
Feuil5.Range("K4") = Feuil14.Range("N4").Value
Feuil5.Range("M4") = Feuil14.Range("N5").Value
Feuil5.Range("O4") = Feuil14.Range("N6").Value
Feuil5.Range("Q4") = Feuil14.Range("N7").Value
Feuil5.Range("S4") = Feuil14.Range("N8").Value
Feuil5.Range("U4") = Feuil14.Range("N9").Value
Feuil5.Range("W4") = Feuil14.Range("N10").Value
Feuil5.Range("Y4") = Feuil14.Range("N11").Value

Bonjour le fil,

@YZMALC, je pense que vous devriez commencer par vous former un peu à VBA
ICI par exemple https://www.excel-pratique.com/fr/vba

Je ne sais pas ce que vous voulez faire mais cette ligne n'est absolument pas correcte

IsNumeric(Feuil5.Range("Z9:Z40")).AdvancedFilter xlFilterCopy, CopyToRange:=Feuil14.Range("N2:N15"), Unique:=True

A+

Bonjour Bruno

je sais que elle est pas correcte c'est pour ça je sollicite votre aide

merci beaucoup

Hello à tous,

Peut être comme ceci :

Feuil14.Range("N2:N15").ClearContents
Feuil5.Range("Z9:Z40")).AdvancedFilter xlFilterCopy, CopyToRange:=Feuil14.Range("N2:N15"), Unique:=True
On Error Resume Next
Feuil5.Range("I4") = iif(isNumeric(Feuil14.Range("N3").Value),Feuil14.Range("N3").Value)
Feuil5.Range("K4") = iif(IsNumeric(Feuil14.Range("N4").Value,Feuil14.Range("N4").Value)
'ect pour les autres ....

Bonsoir,

en y mettant des "Cells", une boucle avec "step 2" le code pourrait se raccourcir...

@ bientôt

LouReeD

Reste à voir combien de fois il faut tourner... Voir mettre une boucle indéfinie avec Do Loop et un test de cellule vide ou pleine pour en sortir, mais du coup il faudra mettre un compteur pour l'incrément de 2.

Sub test()
    Feuil14.Range("N2:N15").ClearContents
    feuil5.Range("Z9:Z40").AdvancedFilter xlFilterCopy, CopyToRange:=Feuil14.Range("N2:N15"), Unique:=True
    lig = 3
    For i = 9 To 41 Step 2
        If IsNumeric(Feuil14.Cells(lig, 14).Value) Then feuil5.Cells(4, i) = Feuil14.Cells(lig, 14).Value
        lig = lig + 1
    Next i
End Sub

@ bientôt

LouReeD

Rechercher des sujets similaires à "copier juste chiffres trouve texte passe"