481 Aufrufe
Gefragt in Tabellenkalkulation von

Guten Tag,

Habe ein Problem mit Excel Makro hoffe mir kann jemand helfen,

  1. ich möchte aus meiner Tabelle “Hauptformular“ ab Zelle A8, B8, C8, D8, E8, F8,  und H8 bis H1507 alle Zellen wo ab J8 bis J1507 eine 1 enthalten ist in eine andere Tabelle “1 Baustelle“ kopieren.
  2. möchte ich mit einem Makro wenn in meinem “Hauptformular“ Zelle “J“ ein “x“ befindet die Zelle A bis einschließlich i (in Zelle E befindet sich eine geschützte Formel) die ganze Zeile kopieren und eine Zeile darunter nur die Werte (keine neue Zeile) einfügen, das “x“ soll nachher in der jeweiligen Zelle gelöscht werden.

Besten Dank im Voraus.

10 Antworten

0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)

Hallo Jannick,

hast du schon einen Code?

Und kannst du dein Problem bitte so beschreiben, dass jemand, der deine Tabelle nicht kennt und keine Ahnung hat, was du eigentlich willst, weiß, was das Makro tun soll.

Ich verstehe im Moment jedenfalls nur, dass du bei deinem 1. Problem alle Zellen mit einer 1 in eine andere Tabelle kopieren willst. Aber dann würde da ja nur die Ziffer 1 in der Zieltabelle drin stehen.

Und bei deinem zweiten Problem lese ich zwar, dass eine Bereich kopiert werden soll, aber nicht wohin. Und was bedeutet in diesem Zusammenhang "keine neue Zeile".

Und wenn du eine Beispieltabelle zur Verfügung stellen könntest, wäre das auch schon. Eine Anleitung, wie du eine Excel-Datei hier ins Forum einstellen kannst, findest du hier:

Gruß

M.O.

0 Punkte
Beantwortet von

Guten Tag,

habe jetzt ein Testdatei hochgeladen zum besseren Verständnis.http://supportnet.de/forum/?qa=blob&qa_blobid=15046193764851772689

0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)

Hallo Jannick,

hier die überarbeitete Datei: Download.

Das Makro zum Übertragen der Daten in die Baustellenblätter musst per Hand oder über eine Schaltfläche starten.

Das Makro zum kopieren der Zeile startet, wenn du ein x in die Spalte J einträgst. Sollten in der nächsten Zeile bereits Daten vorhanden sein, so werden sie ohne Hinweis einfach überschrieben.

Schau mal, ob das so für dich passt.

Gruß

M.O.

0 Punkte
Beantwortet von

Vielen Dank ein guter Anfang

1. ich möchte aus meiner Tabelle “Hauptformular“ ab Zelle A8, B8, C8, D8, E8, F8,  und H8 bis  H1507 alle        Zellen wo ab J8 bis J1507 eine 1 enthalten ist in eine andere Tabelle “1 Baustelle“ kopieren.

Können sie mir bitte so einrichten sobald in Spalte J8:J2000 eine 1 eingetragen wird sollen die Daten in die Tabelle "1 Baustelle" schon ersichtlich sein, beim Öffnen der Datei soll sie schon aktualisiert sein. 

Wäre es auch möglich bei der Schaltfläche "Seitenende" in der Spalte G5 zur letzten sichtbar beschriebene Zeile springe wenn auch eine Formel enthalten ist.

2. möchte ich mit einem Makro wenn in meinem “Hauptformular“ Zelle “J“ ein “x“ befindet die Zelle A bis einschließlich i (in Zelle E befindet sich eine geschützte Formel) die ganze Zeile kopieren und eine Zeile darunter nur die Werte (keine neue Zeile) einfügen, das “x“ soll nachher in der jeweiligen Zelle gelöscht werden.

Sobald ich J8:J2000 von Hand etwas löschen möchte kommt eine Fehlermeldung.
If LCase(Target.Value) = "x" Then ich möchte auch manchmal eine Zahl eintragen nur für interne zwecke.
Möchte mich nochmal Bedanken für die große Mühe.
0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)

Hallo Jannick,

hier die bearbeitete Datei: Download

Die Daten werden jetzt in das entsprechende Baustellenblatt kopiert, sobald in Spalte J eine Zahl eingegeben wird.

Wäre es auch möglich bei der Schaltfläche "Seitenende" in der Spalte G5 zur letzten sichtbar beschriebene Zeile springe wenn auch eine Formel enthalten ist.

Die letzte beschriebene Zeile wird ja in Spalte A ermittelt, in der das Datum steht. Wie sieht denn die Formel aus?

Gruß

M.O.

0 Punkte
Beantwortet von

Können sie mir bitte so einrichten sobald in Spalte J8:J2000 eine 1 eingetragen wird sollen die Daten in die Tabelle "1 Baustelle" schon ersichtlich sein, beim Öffnen der Datei soll sie schon aktualisiert sein.

Guten morgen, sobald ich eine 1 eintrage kommt die Meldung "die Daten wurden in das entsprechende Baustellenblatt kopiert" (Diese Meldung braucht es nicht) es wird aber nichts in die Tabelle "1 Baustelle" eingefügt. Der mitkopierte link sollte in der Tabelle "1 Baustelle" auch funktionieren.

Sobald ich J8:J2000 von Hand etwas löschen möchte kommt eine Fehlermeldung.

If LCase(Target.Value) = "x" Then ich möchte auch manchmal eine Zahl eintragen nur für interne zwecke.

Möchte mich nochmal Bedanken für die große Mühe.

0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)

Hallo Jannick,

wenn ich das richtig verstehe, willst du einerseits in die Spalte J die Nummer der Baustelle eintragen und dann soll die entsprechende Zeile direkt in das entsprechende Baustellenblatt kopiert werden. Soweit funktioniert das. Es funktioniert auch, wenn du ein x enträgst, dass die Zeile nach unten kopiert werden. Aber wenn du jetzt für interne Zwecke eine Zahl in die Spalte J eingeben willst, wie soll Excel dann wissen, ob die Zeile in das entsprechende Tabellenblatt der Baustelle kopiert werden soll oder nicht?

Soweit im Hautpformular ein Link in der Spalte "Link zur Rechnung" hinterlegt ist, wird dieser Link auch in die Baustellentabelle kopiert. In der hochgeladenen Datei habe ich nur alle Links entfernt.

Das kopieren der Daten hat nicht geklappt, wenn das Zielblatt noch leer war. Das habe ich jetzt geändert. Auch beim Löschen mehrere Zellen sollte es keine Probleme geben.

Hier nocheinmal die geänderte Datei: Download

Gruß

M.O.

0 Punkte
Beantwortet von

Hallo M.O.,

Entschuldigung habe mich in der Beschreibung nicht richtig ausgedrückt, die benannten Zeilen Nummern 1 bis einschließlich 10 soll in der Tabelle "1 Baustelle" kopiert werden, und sobald eine dieser nummern gelöscht wird soll auch die jeweilige Zeile in Tabelle "1 Baustelle" entfernt werden. 

Wenn möglich sollte die Hyperlinkadresse von der gleichen Zeilennummer aus der Tabelle "Link zu pdf" aus Spalte "D und F" in die Tabelle "Hauptformular" in der jeweiligen Spalte "i" eingefügt werden.

Wäre vielleicht auch noch möglich über vba, wenn in Tabelle "Rechnungsbuch" in Spalte "C" ein Betrag zB. 50,00 € steht dann in Spalte "G" Der Text "offen" erscheint und ich später eine Zahl einfügen kann.

Habe jetzt eine "Testdatei antwort" hochgeladen. http://supportnet.de/forum/?qa=blob&qa_blobid=2505505113549643526

Gutes gelingen, Danke

0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Bearbeitet von m-o

Hallo Jannick,

du hast geschrieben:

die benannten Zeilen Nummern 1 bis einschließlich 10 soll in der Tabelle "1 Baustelle" kopiert werden, und sobald eine dieser nummern gelöscht wird soll auch die jeweilige Zeile in Tabelle "1 Baustelle" entfernt werden. 

Bisher wolltest du ja, dass sobald in einer Zeile in Spalte J die 1 steht, diese Zeile in das entsprechende Baustellenblatt kopiert wird. Soll das immer noch für das gesamte Blatt gelten? Oder nur für die Zeilen bis Zeile 10?

Außerdem sollen die Daten gelöscht werden, wenn z.B. die 1 gelöscht wird. Gibt es nur ein Baustellenblatt in der Datei oder können es auch mehrere sein (ich bin von mehreren ausgegangen).

Und wird das x für das Kopieren des letzten Satzes immer noch gebraucht?

Wäre vielleicht auch noch möglich über vba, wenn in Tabelle "Rechnungsbuch" in Spalte "C" ein Betrag zB. 50,00 € steht dann in Spalte "G" Der Text "offen" erscheint und ich später eine Zahl einfügen kann.

Das ist Möglich. Aber in deinen zur Verfügung gestellten Beispieltabellen gibt es keine Tabelle "Rechnungsbuch".

Gruß

M.O.

0 Punkte
Beantwortet von

Guten Tag, bräuchte mal wieder eure Hilfe und zwar möchte ich meine Hyperlink Adresse kürzen zB. von "C:\Users\blabla\Documents\blabla2019\erhalten 2019\Arme\RG Arme Nr AR_2019_732 14_05_19.pdf"   zu "Arme\RG Arme Nr AR_2019_732 14_05_19.pdf" kürzen, habe ein makro gefunden 

Sub Makro2()
    Dim TB As Worksheet, HL
    Set TB = Sheets("Tabelle1")
    
    For Each HL In TB.Hyperlinks
        If Dir(HL.TextToDisplay) <> "" Then 'Datei existiert 
            HL.TextToDisplay = Dir(HL.TextToDisplay) 'Namen extrahieren 
        End If
    Next
End Sub
zeigt mir aber nur "RG Arme Nr AR_2019_732 14_05_19.pdf" möchte aber noch den Namen vor "RG" und zwar "Arme\RG Arme Nr AR_2019_732 14_05_19.pdf" der name vor "RG" ändert sich dauernd. Besten Dank.
...