Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 5342 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: 116301
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 116301:

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: 116301
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 116301:

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: 116301
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 ..
Ähnliche Inhalte
Batch & Shell
For-Schleife Bedingung "nicht erfüllt" abfragen (8)

Frage von BatchNeuling zum Thema Batch & Shell ...

Microsoft Office
"Microsoft Excel kann die Daten nicht einfügen" (2)

Frage von arik12 zum Thema Microsoft Office ...

Microsoft Office
gelöst Excel Zelle dynamisch einer Zeile zuordnen (3)

Frage von sammy65 zum Thema Microsoft Office ...

Neue Wissensbeiträge
Virtualisierung

Docker Monitoring und Steuerung per "sen"

Tipp von Frank zum Thema Virtualisierung ...

Viren und Trojaner

Neues Botnetz über IoT-Geräte

(2)

Information von certifiedit.net zum Thema Viren und Trojaner ...

Ubuntu

Ubuntu 17.10 steht zum Download bereit

(3)

Information von Frank zum Thema Ubuntu ...

Heiß diskutierte Inhalte
Windows Installation
Windows 10 neu installieren (17)

Frage von imebro zum Thema Windows Installation ...

Router & Routing
Externe IP von innen erreichbar machen (15)

Frage von Windows10Gegner zum Thema Router & Routing ...

Windows Server
Frage zu Server Rack (11)

Frage von rainergugus zum Thema Windows Server ...