Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Zeilen in Excel einfügen wenn eine Bedingung erfüllt ist

Frage Microsoft Microsoft Office

Mitglied: geosulf

geosulf (Level 1) - Jetzt verbinden

20.10.2014, aktualisiert 22.10.2014, 4067 Aufrufe, 8 Kommentare, 1 Danke

Hallo

ich möchte ein Problem in Excel lösen

habe ein zwei Tägiges Seminar Excel VBA Einsteiger besucht und nun sind noch viel mehr Fragen offen als ich dachte!

Problem

Excel2007

ich möchte in bestehen den Excel Tabellen Zeilen einfügen

wenn folgende Bedingung erfüllt ist ( Übersichtlichkeit)

in den Tabellen sind immer wieder Zellen einer Spalte mit gleichen Werten gefüllt (z.B. 15645645456)

das kann 1- x mal vorkommen und die Leer Zeile soll immer nach der Letzten Fundstelle eingefügt werden




bin das Wochenende leider daran verzweifelt!

Mit freundlichen Grüßen

Ulf

5504d1959d73d95657e7bd599ab902a9 - Klicke auf das Bild, um es zu vergrößern

die Spallte Z ist die die ich bearbeiten möchte

immer wenn in dieser Spalte ein Wert mehr als einmal auftritt soll unter der letzten Fundstelle eine leer Zeile eingefügt werden

dann müsste das einlesen weitergehen um bei der nächsten Fundstelle wieder eine Zeile einfügen werden

bis das Ende dieser Spalte erreicht wird es gibt ca 1900 Zeilen die eingelesen werden müssen!

ich denke das meine Lösungsversuche immer an der Problematik enden das ich es nicht hinbekommen

wie erreiche ich es das ich den Zellenwert merke nach weiteren suche ( das gute sie kommen immer hintereinander)

die Leerzeile einzufügen und dann ab der Fundstelle weitermache!

Ich werde heute Abend dies mit meinen Versuchen noch ergänzen!

Ulf


Mitglied: 114757
20.10.2014, aktualisiert um 11:22 Uhr
Hallo,
bißchen wenig Info findest du nicht ? Nutze die Fomatierungsoptionen des Forums um uns wenigstens ein Beispiel deiner Tabelle zu zeigen, damit wir besser verstehen was du exakt meinst. Hier kommt es wie immer auf Kleinigkeiten an!

Gruß
jodel32
Bitte warten ..
Mitglied: Roadrunner0815
20.10.2014 um 11:31 Uhr
Also ich würde dein Probem mit VBA versuchen zu lösen. Anfangen könnte man folgendermaßen:
- VBA-Aufzeichnung starten
- Stelle mit Dopplung manuell suchen
- von Hand die beiden Zeilen einfügen
- Aufzeichnung beenden

Damit hast du dann schon ein kleines Unterprogramm, welches genau deine Funktionalität erfüllt. Im zweiten Schritt, aber da müsste ich auch erst mal nachschauen, baust du dir eine Routine, die die doppelten Zeilen sucht und wenn sie die gefunden hat, das obige Unterprogramm aufruft.

Ist sicher nicht die eleganteste Lösung, müsste aber funktionieren...
Bitte warten ..
Mitglied: colinardo
20.10.2014, aktualisiert um 12:47 Uhr
Hallo Ulf, Willkommen auf Administrator.de!
das könntest du folgendermaßen machen: find_duplicates_insert_rows_252473.xlsm
01.
Sub InsertRowsAfterDuplicates() 
02.
    Dim ws As Worksheet, rngCurrent As Range, cnt as integer, lastValue as String 
03.
    Set ws = Sheets(1) 
04.
    Set rngCurrent = ws.Range("Z1") 
05.
    lastValue = "" 
06.
    cnt = 0 
07.
    While rngCurrent.Value <> "" 
08.
        If lastValue = rngCurrent.Value Then 
09.
            cnt = cnt + 1 
10.
            lastValue = rngCurrent.Value 
11.
            Set rngCurrent = rngCurrent.Offset(1, 0) 
12.
        Else 
13.
            If cnt >= 2 Then 
14.
                rngCurrent.EntireRow.Insert 
15.
                rngCurrent.EntireRow.Insert 
16.
                lastValue = rngCurrent.Value 
17.
                Set rngCurrent = rngCurrent.Offset(1, 0) 
18.
            Else 
19.
                lastValue = rngCurrent.Value     
20.
            End If 
21.
            cnt = 0 
22.
        End If 
23.
    Wend 
24.
End Sub
Grüße Uwe
Bitte warten ..
Mitglied: Eintagsfliege
LÖSUNG 20.10.2014, aktualisiert 21.10.2014
Hallo zusammen!

Andere Möglichkeit:
01.
Sub Test() 
02.
    Dim oFound As Range, i As Long 
03.
     
04.
    With Sheets("Tabelle1") 
05.
        For i = .UsedRange.Rows.Count To 1 Step -1 
06.
            If .Cells(i, "Z").Text <> "" Then 
07.
                Set oFound = .Columns("Z:Z").Find(.Cells(i, "Z").Text, .Cells(i, "Z"), xlValues, xlWhole) 
08.
                 
09.
                If Not oFound Is Nothing Then 
10.
                    If oFound.Row < i Then 
11.
                        .Rows(i + 1).Insert Shift:=xlDown:  i = oFound.Row 
12.
                    End If 
13.
                End If 
14.
            End If 
15.
        Next 
16.
    End With 
17.
End Sub
Grüße Dieter

[edit] Korrektur, sodass es mit/ohne Überschriftzeile funktioniert [/edit]
Bitte warten ..
Mitglied: geosulf
20.10.2014, aktualisiert um 17:33 Uhr
Hallo Dieter

Danke für diesen Quell Text!!!!

Vom Ansatz war ich wenn ich das so sehe vollkommen auf einer falschen Spur!

ich hatte ausgehen von einem VB Script das gleiche Bereiche Farblich markiert Versucht dies so umzubauen das es Leerzeilen erzeugt!

Da ich die Original Tabelle nicht zur Hand habe (bin ja an der Arbeit) habe ich mir eine zum Testen gemacht

und bin in die Falle gelaufen , meine Testtabelle hatte ich so gemacht das ich keine Spaltenüberschriften in der ersten Zeile hatte und so mit funktionierte dein Script wunderbar bis es am Ende bzw an der Zeile 1 angekommen war , (Endlosschleife) zum Glück funktioniert ja STRG _ Pause!

kann nur Danke sagen für die Hilfe ohne das ich auch nur meine Versuche (Schäm) hier gezeigt habe !!

Werde mal schauen ob ich an anderer Stelle nicht gerade beim Thema VB nützliches beitragen kann!!



Zitat von Eintagsfliege:

Hallo zusammen!

Andere Möglichkeit:
01.
> Sub Test() 
02.
>     Dim oFound As Range, i As Long 
03.
>      
04.
>     With Sheets("Tabelle1") 
05.
>         For i = .UsedRange.Rows.Count To 1 Step -1 
06.
>             If .Cells(i, "Z").Text <> "" Then 
07.
>                 Set oFound = .Columns("Z:Z").Find(.Cells(i, "Z").Text, LookIn:=xlValues, LookAt:=xlWhole) 
08.
>                  
09.
>                 If Not oFound Is Nothing Then 
10.
>                     If oFound.Row <> i Then 
11.
>                         .Rows(i + 1).Insert Shift:=xlDown:  i = oFound.Row 
12.
>                     End If 
13.
>                 End If 
14.
>             End If 
15.
>         Next 
16.
>     End With 
17.
> End Sub 
18.
> 
Grüße Dieter
Bitte warten ..
Mitglied: Eintagsfliege
LÖSUNG 21.10.2014, aktualisiert 22.10.2014
Hallo geosulf!

Sorry, hatte nur mit Überschriftzeile getestet

Hab's oben korrigiert und sollte jetzt auch ohne Überschriftzeile funktionieren...

Grüße Dieter
Bitte warten ..
Mitglied: geosulf
22.10.2014, aktualisiert um 14:48 Uhr
Hallo Dieter

Danke für die zusätzlichen Informationen!

Habe nun auch das Original bearbeitet und bei 1930 Zeilen festgestellt das es in dieser Tabelle in der Spalte (Z) leere Zellen gibt! ( es können mal bis zu 5 leere Zellen werden)


meine Idee die Prüfung auf ein leeres Feld müsste so ergänzt werden das wenn diese Zelle Zx leer ist geprüft wird ob rechts oder Links nur leere Zellen sind!

wenn das so ist ist das Ende der Tabelle erreicht!

Ist das zu kompliziert gedacht ? Kann man dies über haupt im Code unterbringen?

Mit freundlichen Grüßen

Ulf





Zitat von Eintagsfliege:

Hallo geosulf!

Sorry, hatte nur mit Überschriftzeile getestet

Hab's oben korrigiert und sollte jetzt auch ohne Überschriftzeile funktionieren...

Grüße Dieter
Bitte warten ..
Mitglied: Eintagsfliege
23.10.2014 um 11:42 Uhr
Hallo geosulf!

Mal abgesehen davon, dass ich den Sinn nicht ganz verstehe (Zwischenleerräume Tabellenende?), ist mein Code dazu eh nicht geeignet, da die Zeilen ja von unten nach oben abgearbeitet werden

Grüße Dieter
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Microsoft Office
gelöst Excel Pdf Datei als Icon Symbol in Word einfügen per Drag and drop? (4)

Frage von Geforce zum Thema Microsoft Office ...

Microsoft Office
Excel nur markierte Zeilen ausdrucken? (3)

Frage von Server4Alle zum Thema Microsoft Office ...

Microsoft Office
gelöst Excel: Mittelwert alle 96 Zeilen berechnen (6)

Frage von sims zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...