ndro
Messages postés30Date d'inscriptionvendredi 19 décembre 2003StatutMembreDernière intervention27 février 2004
-
31 déc. 2003 à 09:07
ndro
Messages postés30Date d'inscriptionvendredi 19 décembre 2003StatutMembreDernière intervention27 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 :
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 !!!!!
mastercatz
Messages postés193Date d'inscriptionjeudi 4 décembre 2003StatutMembreDernière intervention12 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
'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.