Copie premiers caractères cellule Vb

Fermé
pgillou Messages postés 49 Date d'inscription lundi 23 août 2010 Statut Membre Dernière intervention 14 octobre 2010 - 8 oct. 2010 à 10:17
lucas06150 Messages postés 151 Date d'inscription jeudi 17 décembre 2009 Statut Membre Dernière intervention 19 juillet 2012 - 8 oct. 2010 à 14:38
Bonjour le forum,

Petite question en cette fin de semaine en espérant que vous pourrez m'aider.Je cherche à copier les 4 premiers caractères d'une cellule si ça valeur répond à une condition.Voici le code sur lequel je travail sans succès jusqu'ici.

Sub test()

Dim Lig As Long
Dim Col As String
Dim Col1 As String

Dim NbrLig As Long
Dim NumLig As Long

Sheets("Feuil1").Activate
NumLig = 0
Col = "B"
' colonne de la donnée non vide à tester

NumLig = 0
With Sheets("Feuil1") ' feuille source
NbrLig = .Cells(5000, Col).End(xlUp).Row
For Lig = 1 To NbrLig

If .Cells(Lig, Col).Value Like "RA*" Then "valeur a cherché dans colonne B
.Cells(Lig, Col),Copy 'Copie de la cellule
NumLig = NumLig + 1
Cells(NumLig , 1).Select
ActiveSheet.Paste
End If

Next
End With


End Sub

Merci de votre aide et bonne journnée!
A voir également:

7 réponses

lucas06150 Messages postés 151 Date d'inscription jeudi 17 décembre 2009 Statut Membre Dernière intervention 19 juillet 2012 11
8 oct. 2010 à 10:21
Salut,


Pour récupérer les 4 premiers caractères d'une chaîne il me semble que c'est
Left(TaChaine,4)
1
pgillou Messages postés 49 Date d'inscription lundi 23 août 2010 Statut Membre Dernière intervention 14 octobre 2010 1
8 oct. 2010 à 10:29
Salut,
Ecoute j'ai deja essayé cette fonction je n'arrive pas à l'adapter.
J'ai essayé de mofié la ligne suivante:

.Cells(Lig, Col),Copy

par

.Left(Cells(Lig,Col).Value,4)

Le code bloque dessus.

Une idée?

Merci de ton aide
0
lucas06150 Messages postés 151 Date d'inscription jeudi 17 décembre 2009 Statut Membre Dernière intervention 19 juillet 2012 11
Modifié par lucas06150 le 8/10/2010 à 10:44
C'est normal Left() n'est pas une méthode de l'objet Sheet


Essai ca en dehors du With :

Left(Sheet("Feuil1").Cells(Lig,Col).Value,4)

ou

Left(Sheet("Feuil1").Range(Col & Lig).Value,4)
0
pgillou Messages postés 49 Date d'inscription lundi 23 août 2010 Statut Membre Dernière intervention 14 octobre 2010 1
8 oct. 2010 à 11:44
Re,

Pas de changement j'ai un message comme quoi un égal et attendu avec les deux méthodes.

Après je vais peut étre vois pour supprimer les caactéres dont je n'ai pas besoin .
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
8 oct. 2010 à 11:51
Bonjour,

Essaie de faire ça:

If InStr(1,.Cells(Lig, Col).Value, "RA" ) <> 0 Then "valeur a cherché dans colonne B
     NumLig = NumLig + 1
     .Cells(NumLig , 1) = Left(.Cells(Lig,Col).Value,4)
End If 


;o)
0
pgillou Messages postés 49 Date d'inscription lundi 23 août 2010 Statut Membre Dernière intervention 14 octobre 2010 1
8 oct. 2010 à 14:11
Apres adaptation voici le code final:
Sub Macro2()

Dim Col As String
Dim Col1 As String

Dim NbrLig As Long
Dim NumLig As Long

Sheets("carnet dep a").Activate
NumLig = 0
Col = "B" ' colonne de la donnée non vide à tester


NumLig = 0
With Sheets("carnet dep a") ' feuille source
NbrLig = .Cells(5000, Col).End(xlUp).Row
For Lig = 1 To NbrLig

If .Cells(Lig, Col).Value Like "RA*" Then

.Cells(Lig, 1) = Left(.Cells(Lig, Col).Value, 6)

End If

Next

End With
End Sub

Je ne suis pas arrivée à faire marché la fonction InStr mais la fonction Left ma permis de faire ce que je voulais.

Merci à vous deux!
0
lucas06150 Messages postés 151 Date d'inscription jeudi 17 décembre 2009 Statut Membre Dernière intervention 19 juillet 2012 11
8 oct. 2010 à 14:38
De rien !
0