vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Re: Zellen verbinden 
Autor: me36835_1
Datum: 19.08.03 22:44

Hallo Doux!

Ich habe hier ein altes Stück Code, das untereinanderliegende Zellen aus verschiedenen Zeilen zusammen führt. Unabhängig davon, ob die Auswahl aus einem Stück oder aus Mehreren (STRG+markieren) besteht.

Wenn die Zeilen 1 und 3 markiert sind:

   |   Datum   |  ErrText  | Seq-No  |   Details    |
---+-----------+-----------+---------+--------------+-
 1 | 19-Aug-03 | Fehler 30 |       3 | Datensatz 25 |
---+-----------+-----------+---------+--------------+-
 2 | 16-Aug-03 | Fehler 30 |      16 | Datensatz 17 |
---+-----------+-----------+---------+--------------+-
 3 | 18-Aug-03 | Fehler 30 |      61 | Datensatz  7 |
---+-----------+-----------+---------+--------------+-
macht der Code folgendes daraus

   |   Datum   |  ErrText  | Seq-No  |   Details    |
---+-----------+-----------+---------+--------------+-
 1 | 18-Aug-03 | Fehler 30 |       3 | Datensatz 25 |
   |           |           |         | Datensatz  7 |
---+-----------+-----------+---------+--------------+-
 2 | 16-Aug-03 | Fehler 30 |      16 | Datensatz 17 |
---+-----------+-----------+---------+--------------+-
 3 |           |           |         |              |
---+-----------+-----------+---------+--------------+-
Schau's Dir mal an. Vielleicht kannst Du damit etwas anfangen:

Sub join_rows()
Dim minRow, maxRow, minCol, maxCol, i, j As Long
Dim Cel As Range
Dim NewCont As String
' finden der äußersten Zellen - ANFANG
minRow = ActiveCell.Row
maxRow = minRow
minCol = ActiveCell.Column
maxCol = minCol
For Each Cel In Selection
    minRow = IIf(minRow < Cel.Row, minRow, Cel.Row)
    maxRow = IIf(maxRow > Cel.Row, maxRow, Cel.Row)
    minCol = IIf(minCol < Cel.Column, minCol, Cel.Column)
    maxCol = IIf(maxCol > Cel.Column, maxCol, Cel.Column)
Next Cel
 
If minRow = maxRow Then
    MsgBox "You have to select a minimum of two rows before using this" & _
      "function.", vbOKOnly + vbCritical
    Exit Sub
End If
' finden der äußersten Zellen - ANFANG
' Beginne bei der äußersten Zeile oben und gehe dann Zeilenweise weiter
' i = Zeilennummer
For i = minRow + 1 To maxRow
' Ist eine Zelle der aktuellen Zeile i markiert ?
    j = 1 ' Vorgabewert j = 1 keine Markierte Zelle in dieser Zeile
    For Each Cel In Selection
    	' j wird = 0 wenn eine Zelle gefunden wird, die in dieser Zeile markiert 
    ' ist.
        If i = Cel.Row Then j = 0
    Next Cel
' Wenn eine Zelle der aktuellen Zeile i markiert ist (j=0)?
    If j = 0 Then
' dann werden die Spalten dieser Zeile i mit den Spalten der Zeile nimrow 
' verbunden
        For j = minCol To maxCol
' für alle Spalten j
            If IsNumeric(Cells(i, j)) Or IsDate(Cells(i, j)) Then
' bei Zellen mit Zahlen oder Datum wird nur das Minimum behalten (der Kleiste 
' bzw. der Älteste)
                Cells(minRow, j) = IIf(Cells(i, j) < Cells(minRow, j), Cells(i, _
                  j), Cells(minRow, j))
            ElseIf InStr(Cells(minRow, j).Text, Cells(i, j).Text) = 0 Then
' bei allen anderen wird neuer Text mit Zeilenschaltung (vblf) getrennt 
' angehängt
                Cells(minRow, j) = Cells(minRow, j) & vbLf & Cells(i, j)
            End If
        Next j
' Mit dem Inhalt bis bald wird die Zeile zum Löschen vorgemerkt
        Cells(i, minCol) = "bis Bald"
    End If
Next i
For i = maxRow To minRow + 1 Step -1
    If Cells(i, minCol) = "bis Bald" Then
' Zeile Löschen
       Cells(i, minCol).EntireRow.Delete
    End If
Next i
Cells(minRow, minCol).Select
End Sub
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Zellen verbinden724doux19.08.03 16:15
Re: Zellen verbinden59me36835_119.08.03 22:44
Re: Zellen verbinden485doux20.08.03 09:02

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel