BTM909 heeft me een paar weken geleden geholpen om een macro te maken om wat dingen te automatiseren;
[excel]enorme hoeveelheid text groeperen
Toen dacht ik dat ik maximaal 10 regels moest groeperen,
helaas is dit nu 25 maximaal geworden waardoor ik dus de macro niet kan gebruiken.
Ik heb zelf al vanalles geprobeerd met macro's opnemen e.d.
en de macro van btm909 aan te passen , maar het lukt niet.
(wel deels maar ik ben bang dat als ik het toepas op 16.000 regels dat
er fouten in komen die ik niet zo zie..)
Dus mijn vraag is , hoe kan ik de onderstaande macro aanpassen om met max. 25 regels te kunnen werken?
Ik heb al gezien dat ik dit moet aanpassen:
dit moet het dan worden:
Maar wat moet er nog meer gebeuren om het goed te krijgen?
Ik hoop dat iemand me er verder meer kan helpen!
Alvast bedankt!
[excel]enorme hoeveelheid text groeperen
Toen dacht ik dat ik maximaal 10 regels moest groeperen,
helaas is dit nu 25 maximaal geworden waardoor ik dus de macro niet kan gebruiken.
Ik heb zelf al vanalles geprobeerd met macro's opnemen e.d.
en de macro van btm909 aan te passen , maar het lukt niet.
(wel deels maar ik ben bang dat als ik het toepas op 16.000 regels dat
er fouten in komen die ik niet zo zie..)
Dus mijn vraag is , hoe kan ik de onderstaande macro aanpassen om met max. 25 regels te kunnen werken?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
| ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' VBA code created by BtM909
' 11 February 2004
'
' This code will transpose the selection next to the first selected item.
' Besides that, there will be a concatenation of the first 10 columns.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim totaalRegels, eindReeks, teller, charPos As Integer
Sub shuffleCells()
Application.ScreenUpdating = False
Sheets(2).Select
Cells.Select
Selection.ClearContents
Range("A1").Select
Sheets(1).Select
Range("A1").Select
totaalRegels = Sheets(1).Range("A1").End(xlDown).Row
For teller = 1 To totaalRegels
If ActiveCell.Value = "" Then
Range("A1").Select
GoTo bijnaKlaar
End If
eindReeks = 1
ActiveCell.Offset(1, 0).Select
While InStr(ActiveCell.Value, "#") < 1 And ActiveCell.Value <> ""
ActiveCell.Offset(1, 0).Select
eindReeks = eindReeks + 1
Wend
Range("A1", "A" & eindReeks).Select
Selection.Copy
Sheets(2).Range("A" & teller).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Selection.EntireRow.Delete
Next teller
bijnaKlaar:
'Zet de data weer op de originele plek
Sheets(2).Select
Cells.Select
Selection.Cut
Range("A1").Select
Sheets(1).Select
Cells.Select
ActiveSheet.Paste
'Haal de extra character weg
Columns("A:A").Select
Selection.Replace What:="#", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Range("A1").Select
' Maak alles na 10 kolommen leeg en zet de concatenate functie in kolom 11
Columns("K:K").Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.ClearContents
Range("L1").Select
ActiveCell.FormulaR1C1 = _
"=CONCATENATE(RC[-11],RC[-10],RC[-9],RC[-8],RC[-7],RC[-6],RC[-5],RC[-4],RC[-3],RC[-2])"
Selection.Copy
Range("L2:L" & totaalRegels).Select
ActiveSheet.Paste
Range("A1").Select
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub |
Ik heb al gezien dat ik dit moet aanpassen:
code:
1
2
| ActiveCell.FormulaR1C1 = _
"=CONCATENATE(RC[-11],RC[-10],RC[-9],RC[-8],RC[-7],RC[-6],RC[-5],RC[-4],RC |
dit moet het dan worden:
code:
1
2
| ActiveCell.FormulaR1C1 = _
"=CONCATENATE(RC[-25],RC[-24],RC[-23],RC[-22],RC[-21],RC[-20],RC[-19],RC[-18],RC[-17],RC[-16],RC[-15],RC[-14],RC[-13],RC[-12],RC[-11],RC[-10],RC[-9],RC[-8],RC[-7],RC[-6],RC[-5],RC[-4],RC |
Maar wat moet er nog meer gebeuren om het goed te krijgen?
Ik hoop dat iemand me er verder meer kan helpen!
Alvast bedankt!