Excel: Makro mit Bedinung "wenn leer, kopieren von und einfügen"

  • #1
T

Tobsen086

Bekanntes Mitglied
Themenersteller
Dabei seit
01.11.2003
Beiträge
72
Reaktionspunkte
0
Hallo!

Hab leider keine hilfreiche Seite für das Problem gefunden. Bin immer nur zu farblichen Veränderungen von Zellen gekommen. Folgendes Problem: Ich habe eine Tabelle mit Spielbegnungen, wo aber leider das Datum an einer falschen Stelle steht. Es ist nämlich nicht für jedes Spiel einzeln definiert sondern zusammenfassend, für alle Spiele, die an dem Tag sind. Also so:
3029,tab1gifMR2BK.gif


Das ist aber alles andere als praktisch. Ich bräuchte nun ein Makro (oder sonst irgendeinen Weg) um das Datum vor jedes Spiel zu bekommen. Mögliche Bedingungen sind ja gegeben:
1. überall, wo keine Zahl in der Spalte Spiel steht, muss der Inhalt von Spalte C zu B verschoben werden
2. dieses Datum soll dann immer in Spalte B eingetragen werden, bis ein neues Datum kommt

Und so sollte es danach aussehen:
3030,tab2gif2TSWH.gif


Kopfzeile kann natürlich auch weg. Die ist nicht wichtig. Rund würde die ganze Sache am Ende natürlich noch sein, wenn dann noch die Zeilen, wo nur das Datum steht auch noch wegkommen, und quasi pro Zeile nur ein Spiel drin steht. Aber das ist noch in weiter Ferne für mich. Ich wäre schon happy, wenn ich es automatisieren kann, dass es dann so, wie das untere Bild aussieht. Über jegliche Links, Hilfen oder Antworten bin ich dankbar.

Schönen Tag,
Tobi!




Hier das ganze nochmal als Tabelle:
SpielDatumHeimGastAnstoß
16.8.2008
2VeltenBernau15:00
3BabelsbergFC Stahl Brandenburg15:00
4FinowMSV 1919 Neuruppin15:00
5BSC RathenowRüdersdorf15:00
6NauenHennigsdorf15:00
7WerderWittenberge/ Br.15:00
8MarienwerderSeelow15:00
17.8.2008
1SchönowZehdenick14:00
22.8.2008
14BernauMarienwerder18:30
15SeelowSchönow19:30
23.8.2008
9Wittenberge/ Br.Nauen15:00
10HennigsdorfBSC Rathenow15:00
11RüdersdorfFinow15:00
12MSV 1919 NeuruppinBabelsberg15:00
13FC Stahl BrandenburgVelten15:00
16ZehdenickWerder15:00
29.8.2008
23SeelowBernau19:30
30.8.2008
18VeltenMSV 1919 Neuruppin15:00
19BabelsbergRüdersdorf15:00
20FinowHennigsdorf15:00
21BSC RathenowWittenberge/ Br.15:00
22NauenZehdenick15:00
24MarienwerderFC Stahl Brandenburg15:00
17SchönowWerder16:00
 
  • #2
Muss der Inhalt, wenn es ein Datum ist, unbedingt von Spalte C nach Spalte B verschoben werden ? Oder kann das Datum zusätzlich in Spalte C stehenbleiben?

Wenn es stehenbleiben kann, schreibst du in in B2 folgende Formel, und kopierst sie in alle Felder der Spalte B, die du benötigst

=WENN(UND(A2=;C2=);;WENN(UND(A2=;C2<>);C2;B1))

Spalte B muss als Datum formatiert sein.
 
  • #3
Hallöchen!

Hätte ich ja vielleicht nochmal antworten können. Mir wurde in einem anderen Forum mit diesem Makro wunderbar geholfen:

Code:
Option Explicit 

Sub umordnen() 
Dim wks As Worksheet 
Dim lng As Long, lngLetzte As Long 
Dim dtDatum As Date 

Set wks = ActiveSheet 
With wks 
  lngLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count) 
  If lngLetzte < 2 Then 
    MsgBox keine Daten zum umsortieren Vorhanden 
    Exit Sub 
  End If 
'leere Zelle in A2 und Datum in C2 ? 
  If IsEmpty(.Cells(2, 1)) And IsDate(.Cells(2, 3).Value) Then 
    dtDatum = .Cells(2, 3).Value 
    .Cells(2, 3).ClearContents 
  Else 
    MsgBox falsches Datenformat 
    Exit Sub 
  End If 
'umsortieren 
  For lng = 3 To lngLetzte 
    If IsEmpty(.Cells(lng, 1)) And IsDate(.Cells(lng, 3).Value) Then 
      dtDatum = .Cells(lng, 3).Value 
      .Cells(lng, 3).ClearContents 
    Else 
      .Cells(lng, 2).Value = dtDatum 
    End If 
  Next lng 
'leere Zeilen löschen (Spalte A enthält keinen Wert) 
  For lng = lngLetzte To 2 Step -1 
    If IsEmpty(.Cells(lng, 1)) Then 
      .Rows(lng).Delete Shift:=xlShiftUp 
    End If 
  Next lng 
End With 
End Sub

Besten Dank trotzdem!
 
Thema:

Excel: Makro mit Bedinung "wenn leer, kopieren von und einfügen"

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben