Microsoft Excel

Herbers Excel/VBA-Archiv

Excel VBA - Zelle beschriftet einfügen mit if

Betrifft: Excel VBA - Zelle beschriftet einfügen mit if von: Gerriet
Geschrieben am: 15.08.2014 09:18:29

Hallo zusammen,

ich muss für das studentische Forum meiner Hochschule eine Liste programmieren, welche aus den Daten Namen, Matrikelnummer und Telefon besteht und deren Einträge zum Teil unvollständig sind. In diesem Zusammenhang soll das Makro im ersten Schritt raussuchen, ob in Spalte A "Name:..." steht und in der darauffolgenden Zeile der Spalte A "Matrikelnummer:..." und in der darauffolgenden Zeile "Telefon:..." und im zweiten Schritt dann falls ein Eintrag fehlt, die Matrikelnummer und/oder Telefon entsprechend der Struktur (Name, Matrikelnummer, Telefon)ergänzen.

Ich hoffe, Ihr könnt mir helfen. Ich studiere leider nicht Informatik und stehe daher am meisten bei der IF-Abfrage mit Zelle + 1 = Matrikelnummer und Zelle + 2 = Telefon sozusagen aufm Schlauch.

  

Betrifft: AW: Excel VBA - Zelle beschriftet einfügen mit if von: Klaus M.vdT.
Geschrieben am: 15.08.2014 11:10:03

Hallo Gerriet,

Im Prinzip so:

Dim r As Range
For Each r In Range("A1:A1000")
 If r.Value <> "" Then
  If Range("B" & r.Row) = "" Then
   'Ergänze Telefonnummer
  End If
  If Range("C" & r.Row) = "" Then
   'Ergänze Matrikelnummer
  End If
Next r
Grüße,
Klaus M.vdT.


  

Betrifft: AW: Excel VBA - Zelle beschriftet einfügen mit if von: Gerriet
Geschrieben am: 15.08.2014 12:03:10

Danke für die schnelle Antwort, aber alle Angaben befinden sich in der selben Spalte (A)bzw. die ganzen Einträge stehen in der Ursprungstabelle untereinander:

Optimalfall bzw. Soll-Zustand:
A1 = Name
A2 = Matrikelnummer
A3 = Telefon

Regelfall:
A4 = Name
A5 = Matrikelnummer
[Telefon fehlt]

A6 = Name
[Matrikelnummer fehlt]
A7 = Telefon


  

Betrifft: AW: Excel VBA - Zelle beschriftet einfügen mit if von: Andreas Tissen
Geschrieben am: 15.08.2014 12:25:37

Hallo Gerriet,

sind Telefonnummer und Matrikelnummer als Zahl formatiert?

Gruß Andreas


  

Betrifft: AW: Excel VBA - Zelle beschriftet einfügen mit if von: Andreas Tissen
Geschrieben am: 15.08.2014 12:29:54

... und kannst du mal beispielhaft Telefonnummer und Matrikelnummer aus deiner Excel-Liste zitieren? Man muss die beiden ja irgendwie auseinanderhalten können :-)

LG Andreas


  

Betrifft: AW: Excel VBA - Zelle beschriftet einfügen mit if von: Gerriet
Geschrieben am: 15.08.2014 13:19:00

Hallo Andreas,

vielen Dank für deine Fragen. Also jede Zelle, die eine Telefonnummer enthält, beginnt erstmal mit Tel:
Bei den anderen Angaben Name und Matrikelnummer verhältlich sich das genauso.

Ein Beispiel ist (Zeichenkette exakt eingehalten):
(Zelle A1) Name: Max Mustermann
(Zelle A2) Matrikelnummer: 1234567
(Zelle A3) Telefon: (04921) 12345

Ist es möglich nur den "Zellenanfang", wie z.B. "Name: ", in dem Kombination mit den Anfängen der folgenden Zellen als Hilfe zu nutzen?


  

Betrifft: AW: Excel VBA - Zelle beschriftet einfügen mit if von: Klaus M.vdT.
Geschrieben am: 15.08.2014 13:37:12

Hi Gerriet,
wenn ich dich richtig verstanden habe:

Sub Ergaenze()
Const MySpalte As Long = 1 'in Spalte A
Const AbZeile As Long = 1  'in Zeile 1 gehts los
Dim lRow As Long
Dim i As Long

With ActiveSheet
    lRow = .Cells(.Rows.Count, MySpalte).End(xlUp).Row
    For i = lRow To AbZeile Step -1
        If .Cells(i, MySpalte).Value Like "Name:*" Then
            If Not .Cells(i + 1, MySpalte).Value Like "Matrikelnummer:*" Then
                .Cells(i + 1, MySpalte).Insert Shift:=xlDown
                .Cells(i + 1, MySpalte).Value = "Matrikelnummer: "
            End If
            If Not .Cells(i + 2, MySpalte).Value Like "Telefon:*" Then
                .Cells(i + 2, MySpalte).Insert Shift:=xlDown
                .Cells(i + 2, MySpalte).Value = "Telefon: "
            End If
        End If
    Next i
End With

End Sub
Der Sinn dieses Tabellenaufbaus erschließt sich mir allerdings nicht.

Grüße,
Klaus M.vdT.


  

Betrifft: AW: Excel VBA - Zelle beschriftet einfügen mit if von: Andreas Tissen
Geschrieben am: 15.08.2014 14:02:52

Hallo Gerriet,

habe eine Lösung.

Kann die Datei nicht uploaden.

Schreib mich einfach auf atissen93@gmail.com an.

In der ersten Spalte fügst du deine Daten ein, Knopf drücken und in der 2. Tabelle findest du dann deine Tabelle.

lg Andreas


  

Betrifft: AW: Excel VBA - Zelle beschriftet einfügen mit if von: Gerriet
Geschrieben am: 15.08.2014 14:13:15

Hallo Klaus,

vielen, vielen Dank! Ich finde den Aufbau auch ziemlisch schwachsinnig, aber nachdem der Code durchgelaufen ist, kann das nun richtig formatiert werden bzw. können die ganzen Anfänge entfernt werden.


  

Betrifft: Danke für die Rückmeldung! owT. von: Klaus M.vdT.
Geschrieben am: 15.08.2014 14:14:47

.


  

Betrifft: AW: Excel VBA - Zelle beschriftet einfügen mit if von: Andreas Tissen
Geschrieben am: 15.08.2014 14:17:25

Jetzt geht's.

https://www.herber.de/bbs/user/92133.xlsm

Ist für ca. 2000 Zeilen programmiert. Musst ansonsten die Formeln runterziehen.
Die grauen Felder nicht ändern.

LG Andreas


  

Betrifft: AW: Excel VBA - Zelle beschriftet einfügen mit if von: Gerriet
Geschrieben am: 15.08.2014 15:39:39

Hallo Andreas,

die Lösung ist einfach Spitze! Perfekt!!! Besten Dank!

Ich danke Euch allen für Eure Hilfe und wünsche Euch ein schönes Wochenende


 

Beiträge aus den Excel-Beispielen zum Thema "Excel VBA - Zelle beschriftet einfügen mit if"