Vraag : de overlappende waarden van de compensatiesoort

hy, moet de macro
have die waarden aan net sorteert, macro zo aanpassen als overlappen van waarden waarden vervangen maar geen gesorteerd wordt voorkomt om grid

example in gehechtheid
te compenseren
Attachments:

Antwoord : de overlappende waarden van de compensatiesoort

Dit zou het werk moeten doen, foutenmelding als alle netten volledig zijn.

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:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
Sub Sort_2_cols_to_grid ()
    '********************************************
    'Veronderstellingen **
    '********************************************
    '** - het Begin van Gegevens in Rij 23.  De laatste Rij wordt berekend door macro
    '** - de Waarden in Kolom A en F zijn zelfde
    '** - de Waarden in Kolom C en H zijn zelfde
    '** - de Waarden zijn in kolommen A, B, C, F, G, H
    '********************************************
Op Fout GoTo skip1
    
    Schemerige DataFirstRow zoals lang
    Schemerige DataLastRow zoals lang
    Schemerige DataCurrentRow zoals lang
    
    Schemerige ResultFirstRow zoals lang
    Schemerige ResultLastRow zoals lang
    Schemerige ResultCurrentRow zoals lang
    
    Schemerige ResultFirstCol zoals lang
    Schemerige ResultLastCol zoals lang
    Schemerige ResultCurrentCol zoals lang
    
    Schemerige RowTitle als Koord
    Schemerige ColTitle als Koord
    Schemerige Result1 als Koord
    Schemerige Result2 als Koord
    
Als Waaier („B27“) = "" toen GoTo skip1
    
    DataFirstRow = 27
    DataLastRow = [A65536]. Eind (xlUp). Rij
  
    
    'Rijen („1: 1“). Selecteer
    'Verschuiving Selection.Delete: =xlUp
    'Verschuiving Selection.Insert: =xlDown
    
    ResultFirstRow = 1 'Rij 1
    ResultFirstCol = 6 'Kolom F
    
    'Waaier („G2: AT21“) .ClearContents
    
    
    'Eerst wij opstelling de titels van de Rij in rij 1
    '   deze rijtitels zijn van Kolom C (3) en H
    '   en van Kolom G (7) zal beginnen
    Als 1 = 2 toen
        ResultCurrentRow = 1
        ResultCurrentCol = 7
        Voor DataCurrentRow = DataFirstRow aan DataLastRow
            ColTitle = Cellen (DataCurrentRow, 3)
            Als IsError (Application.Match (ColTitle, Waaier (Cellen (ResultFirstRow, ResultFirstCol), Cellen (ResultFirstRow, ResultCurrentCol)), 0)) Dan
                Cellen (ResultCurrentRow, ResultCurrentCol) = ColTitle
                ResultCurrentCol = ResultCurrentCol + 2
            Eind als
        Volgende DataCurrentRow
        ResultLastCol = ResultCurrentCol - 1
    Anders
        ResultLastCol = 54
        ResultLastRow = 25
    Eind als '1=2
    
    
    'Daarna wij opstelling de titels van de Rij in Kolom F (6)
    ResultCurrentRow = 2 - 1
    ResultCurrentCol = 6
    Voor DataCurrentRow = DataFirstRow aan DataLastRow
        RowTitle = Cellen (DataCurrentRow, 1)
        'Als IsError (Application.Match (RowTitle, Waaier (Cellen (ResultFirstRow, 6), Cellen (ResultCurrentRow, 6)), 0)) Dan
        '    ResultCurrentRow = ResultCurrentRow + 1
        '    Cellen (ResultCurrentRow, 6) = RowTitle
        'Beëindig als
        
        'Nemen wij daarna de gegevens in een lijn op
        '   van Kolommen A (1), B (2), C (3), en G (7)
        '   Bepaal de plaats van de van de resultaatRij en Kolommen gebruikend Gelijke
        '   en kleef dan de Gegevens van het Resultaat
        ColTitle = Cellen (DataCurrentRow, 3)
        ResultCurrentCol = Application.Match (ColTitle, Waaier (Cellen (ResultFirstRow, ResultFirstCol), Cellen (ResultFirstRow, ResultLastCol)), 0)
        ResultCurrentRow = Application.Match (RowTitle, Waaier (Cellen (ResultFirstRow, ResultFirstCol), Cellen (ResultLastRow, ResultFirstCol)), 0)
        
        'Cellen (DataCurrentRow, 2). Exemplaar
        'Cellen (ResultCurrentRow, ResultCurrentCol + ResultFirstCol - 1). Selecteer
        'ActiveSheet.Paste
        'Cellen (DataCurrentRow, 7). Exemplaar
        'Cellen (ResultCurrentRow, ResultCurrentCol + ResultFirstCol). Selecteer
        'ActiveSheet.Paste
        Result1 = Cellen (DataCurrentRow, 2)
        Result2 = Cellen (DataCurrentRow, 7)
        'Controle als het Net leeg is
        Als IsEmpty (Cellen (ResultCurrentRow, ResultCurrentCol + ResultFirstCol - 1)) = Waar toen
            Cellen (ResultCurrentRow, ResultCurrentCol + ResultFirstCol - 1) = „'“ + Result1
            Cellen (ResultCurrentRow, ResultCurrentCol + ResultFirstCol) = „'“ + Result2
        Anders
            'Het Tweede net van de controle aan het recht
            Als IsEmpty (Cellen (ResultCurrentRow, ResultCurrentCol + ResultFirstCol - 1 + 24)) = Waar toen
                Cellen (ResultCurrentRow, ResultCurrentCol + ResultFirstCol - 1 + 24) = „'“ + Result1
                Cellen (ResultCurrentRow, ResultCurrentCol + ResultFirstCol + 24) = „'“ + Result2
            Anders
                'Het Derde net van de controle (linkerbodem)
                Als IsEmpty (Cellen (ResultCurrentRow + 12, ResultCurrentCol + ResultFirstCol - 1)) = Waar toen
                    Cellen (ResultCurrentRow + 12, ResultCurrentCol + ResultFirstCol - 1) = „'“ + Result1
                    Cellen (ResultCurrentRow + 12, ResultCurrentCol + ResultFirstCol) = „'“ + Result2
                Anders
                    'Het Vierde net van de controle (juiste bodem)
                    Als IsEmpty (Cellen (ResultCurrentRow + 12, ResultCurrentCol + ResultFirstCol - 1 + 24)) = Waar toen
                        Cellen (ResultCurrentRow + 12, ResultCurrentCol + ResultFirstCol - 1 + 24) = „'“ + Result1
                        Cellen (ResultCurrentRow + 12, ResultCurrentCol + ResultFirstCol + 24) = „'“ + Result2
                    Anders
                        MsgBox „Alle netten is volledig voor deze inrichting“
                    Beëindig als
                Beëindig als
            Beëindig als
        Beëindig als
    Volgende DataCurrentRow
    
    Als 1 = 2 toen
        Voor ResultCurrentCol = ResultFirstCol + 1 aan ResultLastCol Stap 2
            Waaier (Cellen (ResultFirstRow, ResultCurrentCol), Cellen (ResultFirstRow, ResultCurrentCol + 1)). Selecteer
            Application.CutCopyMode = Vals
            Met Selectie
                .HorizontalAlignment = xlCenter
                .VerticalAlignment = xlBottom
                .WrapText = Vals
                . Richtlijn = 0
                .AddIndent = Vals
                .ShrinkToFit = Vals
                .MergeCells = Vals
            Eind met
            Selection.Merge
        Volgende ResultCurrentCol
    Eind als '1=2

het 'centar karakter van netdelet

    Waaier („G2: BB25“). Selecteer
    Selection.Replace wat: = " '„, Vervanging: = "", LookAt: =xlPart, _
        SearchOrder: =xlByRows, MatchCase: =True, SearchFormat: =False, _
        ReplaceFormat: =False
    Selection.Replace wat: = " """, Vervanging: = "", LookAt: =xlPart, _
        SearchOrder: =xlByRows, MatchCase: =True, SearchFormat: =False, _
        ReplaceFormat: =False
    Selection.Replace wat: = " ¤ ", Vervanging: = "", LookAt: =xlPart, _
        SearchOrder: =xlByRows, MatchCase: =True, SearchFormat: =False, _
        ReplaceFormat: =False
   Cells.Select

skip1:

Sub van het eind
Andere oplossingen  
 
programming4us programming4us