TRES IMPORTANT !!!VBa CELLULES EXCEL

ndro Messages postés 30 Date d'inscription vendredi 19 décembre 2003 Statut Membre Dernière intervention 27 février 2004 - 31 déc. 2003 à 09:07
ndro Messages postés 30 Date d'inscription vendredi 19 décembre 2003 Statut Membre Dernière intervention 27 février 2004 - 31 déc. 2003 à 10:55
Alors avant de commencer je voudrais dire bonne fêtes à toute votre équipe et merci pour le travail remarquable que vous faites, heureusement que vous êtes là !!!!! Voilà mon probléme, j ai un projet sous excel dans lequel uniquement sur la colonne B j ai des informations composées d une lettre et d un chiffre inscrites dans des cellules séparée par d 'autres cellules, exemple :

(Colonne B uniquement)
22998
56559
GTHYMJL
54584841
S5
545454
vjdikf5748
E2
fdfdfdfdf
54654654
fdfdfdfdff
7786789
I4
etc........

Moi ce qui m interresse c'est les S5, E2, I4, etc......

je voudrais le code détaillé me permettant de faire une boucle puis de reperer les petits groupes (Lettre/chiffre)
puis de les couper puis coller un par un à un autre endroit de la feuille d'EXCEL !!!!!

je vous remercie, ca fait deux jours que je suis dessus j en peux plus, je sais je suis novice faut bien commencer un JOUR !!!!!

***Zmia*** :big) mailto: Farsic@keolis.com

2 réponses

mastercatz Messages postés 193 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 12 août 2010
31 déc. 2003 à 10:38
Il faut mettre en reference excel components :

Dim Index_1 As Integer 'index de lecture
Dim Index_2 As Integer 'index d'ecriture
Dim DocExcel As Object 'document excel a traiter
Dim Cell_1 As String 'contenu de la cellule active

'pointeur sablier
Screen.MousePointer = vbHourglass

'on ouvre excel
Set DocExcel = CreateObject("Excel.Application")

'on cache l'application excel
DocExcel.Visible = False

'ouverture du fichier a traiter
DocExcel.Workbooks.Open FileName:="c:\\test.xls", Editable:=True
'selection de la feuille
DocExcel.Sheets("Feuil1").Select

Index_2 = 1

For Index_1 = 1 To 20

'selection de la cellule
Range("B" & Index_1).Select
Cell_1 = DocExcel.ActiveCell.Value2

'si le contenu de la cellule a 2 caracteres ET
'si le premier n'est pas un chiffre ET
'si le second est un chiffre ALORS
'on copie la cellule dans la colonne C
If Len(Cell_1) = 2 And IsNumeric(Right(Cell_1, 1)) And Not IsNumeric(Left(Cell_1, 1)) Then
Selection.Copy
Range("C" & Index_2).Select
'copie
ActiveSheet.Paste
Index_2 = Index_2 + 1
End If

Next

'enregistrement sous un autre document excel (par précaution ^^
DocExcel.ActiveWorkbook.SaveAs FileName:="c:\\test2.xls", _
FileFormat:=17, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False

'on quitte et n ferme
DocExcel.Application.Quit
Set DocExcel = Nothing

'pointeur normal
Screen.MousePointer = vbDefault

Voila, ca copira tous les champs dans la colonne C.
Pour cet exemple j'ai limité à 20 le nombre de cellules testées (dans le For). Le test sur la cellule est peut etre à améliorer mais ca te servira de base.

Miaou
0
ndro Messages postés 30 Date d'inscription vendredi 19 décembre 2003 Statut Membre Dernière intervention 27 février 2004
31 déc. 2003 à 10:55
FRANCHEMENT :

MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEERRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII !!!!!!!!!!!!!!!!!!!

et bonne année a l'avance mastercatzzzzZZZZZzzzz !!!!!!!
***Zmia*** :big) [mailto: mailto:]
0
Rejoignez-nous