Scinder une cellule en deux
bonjour,
J'ai un fichier Excel , avec moult onglets , dont la 1ere colonne du tableau doit être scindée en deux :
Ex: 00315210-01 doit devenir 00315210 et 01 dans 2 colonnes différentes ( Le nom de colonne doit aussi changer )
Bien sur la 1ere colonne du tableau ne commence pas forcement à la colonne A , suivant les onglets . Et ne commence pas non plus en ligne 1 mais plutôt 4 ou 5 suivant les onglets .Et apres ces deux colonnes il y a évidement d'autres données , plus ou moins grande suivant les onglets .
Je sais bq de variantes suivant les onglets :)
Ah oui , si possible que je puisse mettre mon fichier dans un dossier data (par exemple) et de lancer la macro sur un autre fichier , cela m’évitera de recopier la macro a chaque fois ;)
J’espère que qq pourra m'aider , ça m’évitera de faire du =DROITE ou GAUCHE sur tous les onglets !!
Et j’espère avoir été assez clair dans la demande ( ce qui est moins sur !)
merci d'avance
Bonjour Jtsfab le forum
dans ton fichier, la colonne qui doit être prise par les 01 etc est déjà vide ou bien???
(demande bien sur pour toutes les feuilles concernées)
a te relire
a+
Papou
Bonjour,
Bonjour paritec,
Une proposition à étudier.
Voir pour mettre cette procédure dans ton classeur de macros personnelles (Personal.xlsb).
Cdlt.
Public Sub jtsfab()
Dim wb As Workbook, ws As Worksheet
Dim TopCell As Range
Dim tbl, arr() As String
Dim I As Long
Application.ScreenUpdating = False
Set wb = ActiveWorkbook
For Each ws In wb.Worksheets
Set TopCell = ws.Cells(ws.UsedRange.Row, ws.UsedRange.Column)
TopCell.Offset(, 1).EntireColumn.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
TopCell.Offset(, 1).Value = "Index"
tbl = TopCell.Offset(1).Resize(ws.UsedRange.Rows.Count - 1, 1)
ReDim arr(1 To UBound(tbl), 1 To 2)
For I = 1 To UBound(tbl)
arr(I, 1) = VBA.Split(tbl(I, 1), "-")(0)
arr(I, 2) = Format(VBA.Split(tbl(I, 1), "-")(1), "00")
Next I
TopCell.Offset(1).Resize(UBound(tbl), 2) = arr
Next ws
End Sub