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

Excel automatisch neue Zeile einfügen

Frage Microsoft Microsoft Office

Mitglied: FlAsHdRiVe

FlAsHdRiVe (Level 1) - Jetzt verbinden

01.06.2011 um 23:25 Uhr, 22265 Aufrufe, 12 Kommentare

Hallo zusammen bin seit 2 Tagen auf der Suche aber habe nur weit aus komplizierteres gefunden

Ich suche nach einer Möglichkeit in meiner Tabelle automatisch eine Zeile einfügen zu lassen sobald in Spalte D ein Zahlenwert steht.
Die neue Zeile soll direkt unter der Zeile mit dem Zahlenwert stehen (wenn möglich soll der Cursor auch gleich in diese neue Zeile springen auf Spalte A)

An das Ende der Tabelle habe ich schon geschafft mein Problem ist nur das es eine Vorlage werden soll die aus 5 Blöcken besteht die je nach Bedarf gefüllt werden sollen,
sprich da wo ausgefüllt wird soll automatisch eine neue Zeile darunter entstehen.

Sollte für die VB Profis eigentlich kein Problem sein oder?
Ich hoffe ihr könnt mir helfen.

Schönen Abend noch und danke im vorraus
Mitglied: MrTrebron
02.06.2011 um 11:40 Uhr
Hi Flasdrive

dann stell doch mal ein was du schon hast, dann kann man das erweitern.
Denke das kaum jemand am Feiertag lust hat dir die Arbeit komplett abzunehmen.

Ebenfalls kein Gruß
Norbert
Bitte warten ..
Mitglied: 76109
02.06.2011 um 13:04 Uhr
Hallo FlAsHdRiVe!

Versuchs mal hiermit (Quellcode in das entsprechende Tabellenblatt einfügen):
01.
Private Const ColChange = 4     'Spalte Eingabe (D) 
02.
Private Const ColSelect = 1     'Spalte Cursor (A) 
03.
 
04.
Private Sub Worksheet_Change(ByVal Target As Range) 
05.
    Dim NextLine As Long 
06.
     
07.
    With Target 
08.
        If .Count <> 1 Or .Column <> ColChange Then Exit Sub 
09.
         
10.
        If IsNumeric(.Value) Then 
11.
            NextLine = .Row + 1 
12.
            If WorksheetFunction.CountA(Cells(NextLine, 1).Resize(1, Columns.Count)) Then 
13.
                Rows(NextLine).Insert Shift:=xlDown 
14.
                Cells(NextLine, ColSelect).Select 
15.
            Else 
16.
                Cells(NextLine, ColSelect).Select 
17.
            End If 
18.
        End If 
19.
    End With 
20.
End Sub
Wobei nur eine neue Zeile eingefügt wird, wenn die nächste Zeile Werte enthält. In der Leerzeile wird die Zelle in Spalte A (ColSelect) selektiert.

Gruß Dieter
Bitte warten ..
Mitglied: bastla
02.06.2011 um 14:58 Uhr
Hallo Dieter!

Nur als Anregung: Wenn mit der Spaltenangabe nicht gerechnet / verglichen werden muss (wie bei "ColSelect"), kannst Du auch die Spaltenbenennung verwenden:
Private Const ColSelect = "A"
Grüße
bastla
Bitte warten ..
Mitglied: 76109
02.06.2011 um 16:32 Uhr
Hallo bastla!

Zitat von bastla:
Nur als Anregung: Wenn mit der Spaltenangabe nicht gerechnet / verglichen werden muss (wie bei "ColSelect"), kannst Du
auch die Spaltenbenennung verwenden:
Da hast Du Recht, aber zwecks Einheitlichkeit (Spalte D benötigt eine Zahl) habe ich mich dazu durchgerungen, für Spalte A auch eine Zahl zu nehmen und hoffe Du verzeihst mir das

Noch einen schönen Feiertag!

Gruß Dieter
Bitte warten ..
Mitglied: bastla
02.06.2011 um 19:01 Uhr
Hallo Dieter!
hoffe Du verzeihst mir das
Ausnahmsweise

Grüße
bastla
Bitte warten ..
Mitglied: FlAsHdRiVe
05.06.2011 um 18:26 Uhr
Zitat von MrTrebron:
Hi Flasdrive

dann stell doch mal ein was du schon hast, dann kann man das erweitern.
Denke das kaum jemand am Feiertag lust hat dir die Arbeit komplett abzunehmen.

Ebenfalls kein Gruß
Norbert

"Schönen Abend noch" ist für mich schon nen Gruß

Und sorry das ich mich erst jetzt melde aber die Benachrichtigungs mails wurden vom emailserver zurückgewiesen....

Werde den Vorschlag von Didi gleich mal testen....und berichten

schönen Gruß und einen schönen Abend noch
Bitte warten ..
Mitglied: FlAsHdRiVe
05.06.2011 um 18:47 Uhr
Zitat von 76109:
Hallo FlAsHdRiVe!

Versuchs mal hiermit (Quellcode in das entsprechende Tabellenblatt einfügen):
01.
> Private Const ColChange = 4     'Spalte Eingabe (D) 
02.
> Private Const ColSelect = 1     'Spalte Cursor (A) 
03.
>  
04.
> Private Sub Worksheet_Change(ByVal Target As Range) 
05.
>     Dim NextLine As Long 
06.
>      
07.
>     With Target 
08.
>         If .Count <> 1 Or .Column <> ColChange Then Exit Sub 
09.
>          
10.
>         If IsNumeric(.Value) Then 
11.
>             NextLine = .Row + 1 
12.
>             If WorksheetFunction.CountA(Cells(NextLine, 1).Resize(1, Columns.Count)) Then 
13.
>                 Rows(NextLine).Insert Shift:=xlDown 
14.
>                 Cells(NextLine, ColSelect).Select 
15.
>             Else 
16.
>                 Cells(NextLine, ColSelect).Select 
17.
>             End If 
18.
>         End If 
19.
>     End With 
20.
> End Sub 
21.
> 
Wobei nur eine neue Zeile eingefügt wird, wenn die nächste Zeile Werte enthält. In der Leerzeile wird die Zelle in
Spalte A (ColSelect) selektiert.

Gruß Dieter

Super vielen Dank schon mal genau was ich gesucht habe.
Wie würde der Code aussehen wenn ich nur eine neue Zeile haben möchte wenn in Spalte E die Eingabetaste gedrückt wird? In dieser wird nicht gerechnet oder verglichen!
Aber deine lösung ist schon fast Perfekt für meinen Bedarf

Gruß
Leif

Update: Ich glaube die beste Lösung für mein Problem wäre das sobald in Spalte E die "Eingabetaste" gedrückt wird sich darunter eine neue Zeile einfügt.
Weil mit der obigen Lösung meine Summenfunktion nicht erweitert wird.

LG
Bitte warten ..
Mitglied: FlAsHdRiVe
07.06.2011 um 21:22 Uhr
Keiner mehr nen Tip oder nen Code ?
Komme einfach nicht mehr weiter....

Mit freundlichen Grüßen
Bitte warten ..
Mitglied: MarkusMarkus
05.07.2013 um 22:20 Uhr
Ich möchte ein Fragebogen erstellen und damit dieser nicht gleich so bombastisch aussieht kannst du mir bestimmt weiterhelfen.
Wie formuliere ich den Quellcode, wenn statt Zahlen einfach nur ein Inhalt stehen muss um automatisch eine Zeile zu öffnen.

Ich bedanke mich schon mal im Vorraus bei Dir!!!
Bitte warten ..
Mitglied: bastla
05.07.2013 um 22:29 Uhr
Hallo MarkusMarkus und willkommen im Forum (ja, wir mögen hier Begrüßungen)!

Wenn ich Dich richtig verstehe, versuch es mit folgender Zeile 10:
        If Not IsEmpty(.Value) Then
Grüße
bastla
Bitte warten ..
Mitglied: MarkusMarkus
05.07.2013 um 22:46 Uhr
Leider nicht. Es soll z.B. eine dritte Zeile automatisch eingefügt werden, wenn die zweite Zeile einen Inhalt besitzt.


Zeile 1: Welche Tiere gibt es dort? [Enter]
Zeile 2: Antwort

und wenn ich jetzt [Enter] drücke wird die dritte Zeile eingefügt und Zeile 5,6,7... werden runtergesetzt.

Trotzdem Rekord in Antworten!!!!
Danke
Bitte warten ..
Mitglied: 76109
06.07.2013, aktualisiert um 14:10 Uhr
Hallo MarkusMarkus!

Das funktioniert so nicht, da der Code ja nur auf eine Änderung (Change) des Zellinhalts reagiert, also wenn Du in der betreffenden Zelle etwas eingibst und mit Enter bestätigst.

Eine aus meiner Sicht vertretbare Lösung wäre:
Du erstellst eine Tabelle mit den Fragen durch Leerzeilen getrennt.

Danach wird bei einem Doppelklick auf eine Frage (muss als Indikator ein Fragezeichen beinhalten), eine InputBox zur Beantwortung der Frage ausgegeben und entsprechend des Inhalts (Leer, Abbruch oder Text) eine neue Zeile unterhalb der Frage eingefügt oder auch nicht...

Die standardmäßige Doppelklick-Funktion (direktes editieren einer Zelle) ist dabei außer Kraft gesetzt...

Code in das Tabellenblatt einfügen:
01.
Option Explicit 
02.
 
03.
Private Const ColSelect = 1     'Spalte A 
04.
 
05.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, ByRef Cancel As Boolean) 
06.
    Dim strAntwort As String, rngNext As Range 
07.
     
08.
    With Target 
09.
        If .Column = ColSelect And InStr(.Text, "?") > 0 Then 
10.
            strAntwort = Replace(InputBox(.Text, "Frage beantworten..."), "?", "") 
11.
             
12.
            If strAntwort <> "" Then 
13.
                Set rngNext = .Offset(1, 0) 
14.
                Do Until rngNext.Text = "" 
15.
                    Set rngNext = rngNext.Offset(1, 0) 
16.
                Loop 
17.
                 
18.
                rngNext.Value = strAntwort 
19.
                Rows(rngNext.Row + 1).Insert Shift:=xlDown 
20.
            End If 
21.
        End If 
22.
    End With 
23.
    Cancel = True 
24.
End Sub
Gruß Dieter
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
VB for Applications
gelöst Beim Bestätigen einer Zelle automatisch zwei neue Zeilen einfügen (5)

Frage von striding zum Thema VB for Applications ...

Microsoft Office
gelöst Registerkarte in Excel automatisch färben (14)

Frage von ralfkausk zum Thema Microsoft Office ...

Datenbanken
Mit sql eine Zeile einfügen, select und feste Werte (9)

Frage von helmuthelmut2000 zum Thema Datenbanken ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...