Frage : überschneidenwerte der Offsetart

hy,
have erhalten Makro, das Werte zum Rasterfeld sortiert, Notwendigkeit, Makroso, wenn die Überschneidung von Werten Werte auftritt, zu justieren nicht ersetzt aber sortiert, um grid

example zu versetzen im Zubehör
Attachments:

Antwort : überschneidenwerte der Offsetart

Dieses sollte die Arbeit, Fehlermeldung erledigen, wenn alle Rasterfelder voll sind.

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:
6:
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:
VorSort_2_cols_to_grid ()
    '********************************************
    '** Annahmen
    '********************************************
    '** - Daten-Anfänge in Reihe 23.  Letzte Reihe wird durch Makro berechnet
    '** - Werte in Spalte A und F sind selben
    '** - Werte in Spalte C und H sind selben
    '** - Werte sind in Spalten A, B, C, F, G, H
    '********************************************
Auf Störung Goto- skip1
    
    Schwaches DataFirstRow als lang
    Schwaches DataLastRow als lang
    Schwaches DataCurrentRow als lang
    
    Schwaches ResultFirstRow als lang
    Schwaches ResultLastRow als lang
    Schwaches ResultCurrentRow als lang
    
    Schwaches ResultFirstCol als lang
    Schwaches ResultLastCol als lang
    Schwaches ResultCurrentCol als lang
    
    Schwaches RowTitle als Schnur
    Schwaches ColTitle als Schnur
    Schwaches Result1 als Schnur
    Schwaches Result2 als Schnur
    
Wenn Strecke („B27“) = "" dann Goto- skip1
    
    DataFirstRow = 27
    DataLastRow = [A65536]. Ende (xlUp). Reihe
  
    
    'Rudert („1: 1“). Auserwählt
    'Selection.Delete Verschiebung: =xlUp
    'Selection.Insert Verschiebung: =xlDown
    
    ResultFirstRow = 1 'Reihe 1
    ResultFirstCol = 6 'Spalte F
    
    'Strecke („G2: AT21“) .ClearContents
    
    
    'Zuerst gründeten wir die Reihentitel in Reihe 1
    '   diese Reihentitel sind von Spalte C (3) und H
    '   und fährt von Spalte G ab (7)
    Wenn 1 = 2 dann
        ResultCurrentRow = 1
        ResultCurrentCol = 7
        Für DataCurrentRow = DataFirstRow zu DataLastRow
            ColTitle = Zellen (DataCurrentRow, 3)
            Wenn IsError (Application.Match (ColTitle, Strecke (Zellen (ResultFirstRow, ResultFirstCol), Zellen (ResultFirstRow, ResultCurrentCol)), 0)) Dann
                Zellen (ResultCurrentRow, ResultCurrentCol) = ColTitle
                ResultCurrentCol = ResultCurrentCol + 2
            Beenden wenn
        Folgendes DataCurrentRow
        ResultLastCol = ResultCurrentCol - 1
    Sonst
        ResultLastCol = 54
        ResultLastRow = 25
    Beenden wenn '1=2
    
    
    'Zunächst gründeten wir die Reihentitel in Spalte F (6)
    ResultCurrentRow = 2 - 1
    ResultCurrentCol = 6
    Für DataCurrentRow = DataFirstRow zu DataLastRow
        RowTitle = Zellen (DataCurrentRow, 1)
        ', wenn IsError (Application.Match (RowTitle, Strecke (Zellen (ResultFirstRow, 6), Zellen (ResultCurrentRow, 6)), 0)) Dann
        '    ResultCurrentRow = ResultCurrentRow + 1
        '    Zellen (ResultCurrentRow, 6) = RowTitle
        'Beenden wenn
        
        'Zunächst heben wir die Daten in einer Schleife auf
        '   von Spalten A (1), B (2), C (3) und G (7)
        '   Die Resultat Reihe und die Spalten using Gleiches lokalisieren
        '   und die Resultats-Daten dann kleben
        ColTitle = Zellen (DataCurrentRow, 3)
        ResultCurrentCol = Application.Match (ColTitle, Strecke (Zellen (ResultFirstRow, ResultFirstCol), Zellen (ResultFirstRow, ResultLastCol)), 0)
        ResultCurrentRow = Application.Match (RowTitle, Strecke (Zellen (ResultFirstRow, ResultFirstCol), Zellen (ResultLastRow, ResultFirstCol)), 0)
        
        'Zellen (DataCurrentRow, 2).Copy
        'Zellen (ResultCurrentRow, ResultCurrentCol + ResultFirstCol - 1).Select
        'ActiveSheet.Paste
        'Zellen (DataCurrentRow, 7).Copy
        'Zellen (ResultCurrentRow, ResultCurrentCol + ResultFirstCol). Auserwählt
        'ActiveSheet.Paste
        Result1 = Zellen (DataCurrentRow, 2)
        Result2 = Zellen (DataCurrentRow, 7)
        'Überprüfen, ob Rasterfeld leer ist
        Wenn IsEmpty (Zellen (ResultCurrentRow, ResultCurrentCol + ResultFirstCol - 1)) = richten dann aus
            Zellen (ResultCurrentRow, ResultCurrentCol + ResultFirstCol - 1) = „'“ + Result1
            Zellen (ResultCurrentRow, ResultCurrentCol + ResultFirstCol) = „'“ + Result2
        Sonst
            'Zweites Rasterfeld rechts überprüfen
            Wenn IsEmpty (Zellen (ResultCurrentRow, ResultCurrentCol + ResultFirstCol - 1 + 24)) = dann ausrichten
                Zellen (ResultCurrentRow, ResultCurrentCol + ResultFirstCol - 1 + 24) = „'“ + Result1
                Zellen (ResultCurrentRow, ResultCurrentCol + ResultFirstCol + 24) = „'“ + Result2
            Sonst
                'Drittes Rasterfeld (linke Unterseite) überprüfen
                Wenn IsEmpty (Zellen (ResultCurrentRow + 12, ResultCurrentCol + ResultFirstCol - 1)) = richten dann aus
                    Zellen (ResultCurrentRow + 12, ResultCurrentCol + ResultFirstCol - 1) = „'“ + Result1
                    Zellen (ResultCurrentRow + 12, ResultCurrentCol + ResultFirstCol) = „'“ + Result2
                Sonst
                    'Viertes Rasterfeld (rechte Unterseite) überprüfen
                    Wenn IsEmpty (Zellen (ResultCurrentRow + 12, ResultCurrentCol + ResultFirstCol - 1 + 24)) = dann ausrichten
                        Zellen (ResultCurrentRow + 12, ResultCurrentCol + ResultFirstCol - 1 + 24) = „'“ + Result1
                        Zellen (ResultCurrentRow + 12, ResultCurrentCol + ResultFirstCol + 24) = „'“ + Result2
                    Sonst
                        MsgBox „alle Rasterfelder sind voll für diese Befestigung“
                    Beenden wenn
                Beenden wenn
            Beenden wenn
        Beenden wenn
    Folgendes DataCurrentRow
    
    Wenn 1 = 2 dann
        Für ResultCurrentCol = ResultFirstCol + 1 zu ResultLastCol Schritt 2
            Strecke (Zellen (ResultFirstRow, ResultCurrentCol), Zellen (ResultFirstRow, ResultCurrentCol + 1)). Auserwählt
            Application.CutCopyMode = falsch
            Mit Vorwähler
                .HorizontalAlignment = xlCenter
                .VerticalAlignment = xlBottom
                .WrapText = falsch
                . Lagebestimmung = 0
                .AddIndent = falsch
                .ShrinkToFit = falsch
                .MergeCells = falsch
            Ende mit
            Selection.Merge
        Folgendes ResultCurrentCol
    Beenden wenn '1=2

'centar Rasterfeld delet Buchstabe

    Strecke („G2: BB25“). Auserwählt
    Selection.Replace was: = " '„, Wiedereinbau: = "", LookAt: =xlPart, _
        SearchOrder: =xlByRows, MatchCase: =True, SearchFormat: =False, _
        ReplaceFormat: =False
    Selection.Replace was: = " """, Wiedereinbau: = "", LookAt: =xlPart, _
        SearchOrder: =xlByRows, MatchCase: =True, SearchFormat: =False, _
        ReplaceFormat: =False
    Selection.Replace was: = " ¤ ", Wiedereinbau: = "", LookAt: =xlPart, _
        SearchOrder: =xlByRows, MatchCase: =True, SearchFormat: =False, _
        ReplaceFormat: =False
   Cells.Select

skip1:

Enden-Unterseeboot
Weitere Lösungen  
 
programming4us programming4us