| |
| 3D-Druck: 7 Gründe für den Einsatz in der Medizin, ein Fachartikel
|
Autor
|
Thema: Makro für Spalten löschen bis zu gewissen Begriff (3376 mal gelesen)
|
schlathe Mitglied Konstrukteur
Beiträge: 9 Registriert: 27.04.2006
|
erstellt am: 20. Mrz. 2013 08:19 <-- editieren / zitieren --> Unities abgeben:
Hallo. Ich komm bei einem Makro nicht weiter. Ich habe ein Tabellenblatt wo ich die Spalten, bis zur einer gewissen Spalte, wo in der 2. Reihe das Wort "Orig" steht löschen möchte. Habe das file angehängt. lg helmut ------------------ mfg schlathe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin
Beiträge: 2799 Registriert: 02.05.2006 Office 2010; Office365 Visual Basic
|
erstellt am: 20. Mrz. 2013 08:29 <-- editieren / zitieren --> Unities abgeben: Nur für schlathe
|
schlathe Mitglied Konstrukteur
Beiträge: 9 Registriert: 27.04.2006
|
erstellt am: 20. Mrz. 2013 08:31 <-- editieren / zitieren --> Unities abgeben:
Hallo. das Ganze sollte ja automatisch ablaufen. Das Problem ist, dass die genannte Reihe immer an einer anderen Stelle steht. MfG Helmut ------------------ mfg schlathe [Diese Nachricht wurde von schlathe am 20. Mrz. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 20. Mrz. 2013 08:45 <-- editieren / zitieren --> Unities abgeben: Nur für schlathe
|
schlathe Mitglied Konstrukteur
Beiträge: 9 Registriert: 27.04.2006
|
erstellt am: 20. Mrz. 2013 08:48 <-- editieren / zitieren --> Unities abgeben:
Hallo. Das makro für das Löschen der Zeilen ist ja nur ein Makro von vielen das Ablaufen sollte. Wenn das Löschen nicht funktioniert, können die anderen Makros auch nicht ordnungsgemäß ausgeführt werden. MfG Helmut ------------------ mfg schlathe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Axel.Strasser Ehrenmitglied V.I.P. h.c. Selbstständig im Bereich PLM/CAx
Beiträge: 4107 Registriert: 12.03.2001 Früher war vieles gut, und das wäre es heute immer noch, wenn man die Finger davon gelassen hätte!
|
erstellt am: 20. Mrz. 2013 09:26 <-- editieren / zitieren --> Unities abgeben: Nur für schlathe
|
schlathe Mitglied Konstrukteur
Beiträge: 9 Registriert: 27.04.2006
|
erstellt am: 20. Mrz. 2013 09:51 <-- editieren / zitieren --> Unities abgeben:
Danke für die Antwort. Ich bekomme immer die Fehlermeldung " Fehler beim Kombilieren: Sub oder Function nicht definiert" und er markiert die Zeile "If cell(i, 2).value= ...... Was kann da der Fehler sein? MfG
------------------ mfg schlathe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Hofe Mitglied Werkzeugmacher
Beiträge: 440 Registriert: 12.01.2008 Computer: Aldi Schreibtisch: Ikea Werkbank: Baumarkt Software: 1967-2021, viele Updates und SP's, aber sicher nicht alle, deswegen immer wieder Sicherheitslücken
|
erstellt am: 20. Mrz. 2013 09:58 <-- editieren / zitieren --> Unities abgeben: Nur für schlathe
Zitat: Original erstellt von schlathe: Danke für die Antwort. Ich bekomme immer die Fehlermeldung " Fehler beim Kombilieren: Sub oder Function nicht definiert" und er markiert die Zeile "If cell(i, 2).value= ......Was kann da der Fehler sein? MfG
Hast Du "höchstmöglichespaltennummer" genau so übernommen oder da auch wirklich die höchstmögliche Spaltennummer eingesetzt? Grüße Hofe
------------------ Ist mir egal, wer Dein Vater ist; solange ich angle läuft hier keiner übers Wasser! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
schlathe Mitglied Konstrukteur
Beiträge: 9 Registriert: 27.04.2006
|
erstellt am: 20. Mrz. 2013 10:00 <-- editieren / zitieren --> Unities abgeben:
Der code : Sub Spalte_loeschen() Sheets("export").Select Range("A2").Select For i = 1 To 20 If cell(x, 2).Value = "Orig" Then Range(Rows(1), Rows(i - 1)).Select Selection.Delete Exit For End If Next
End Sub ------------------ mfg schlathe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Hofe Mitglied Werkzeugmacher
Beiträge: 440 Registriert: 12.01.2008 Computer: Aldi Schreibtisch: Ikea Werkbank: Baumarkt Software: 1967-2021, viele Updates und SP's, aber sicher nicht alle, deswegen immer wieder Sicherheitslücken
|
erstellt am: 20. Mrz. 2013 10:09 <-- editieren / zitieren --> Unities abgeben: Nur für schlathe
Es muss nicht "cell" heißen, sondern "cells". Dann krichste aber den nächsten Fehler, weil "x" nicht deklariert ist. Und "i-1" dürfte auch zu einem Fehler führen, denn das ergibt beim ersten Durchlauf Null, Spalte Null gibts nicht. Grüße Hofe ------------------ Ist mir egal, wer Dein Vater ist; solange ich angle läuft hier keiner übers Wasser! [Diese Nachricht wurde von Hofe am 20. Mrz. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
schlathe Mitglied Konstrukteur
Beiträge: 9 Registriert: 27.04.2006
|
erstellt am: 20. Mrz. 2013 10:16 <-- editieren / zitieren --> Unities abgeben:
Hallo. Danke für den Tipp. Jetztgibt es nur noch einen Fehler. Er sucht den Wert in der Spalte 2 und nicht in der Reihe 2. Wie kann ich das noch ändern? ich weiß ich bin lästig :-) lg ------------------ mfg schlathe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Hofe Mitglied Werkzeugmacher
Beiträge: 440 Registriert: 12.01.2008 Computer: Aldi Schreibtisch: Ikea Werkbank: Baumarkt Software: 1967-2021, viele Updates und SP's, aber sicher nicht alle, deswegen immer wieder Sicherheitslücken
|
erstellt am: 20. Mrz. 2013 10:25 <-- editieren / zitieren --> Unities abgeben: Nur für schlathe
Versuchs mal so: Sub Spalte_loeschen() Sheets("Tabelle1").Select Range("A2").Select For i = 1 To 20 If Cells(i, 2).Value = "Orig" Then Range(Rows(1), Rows(i - 1)).Select Selection.Delete Exit For End If Next End Sub Das mit "-1" war übrigens blödes Geschwätz von mir, es funktioniert Wenn der Wert "Orig" immer in Zeile 2 steht, dann kannst Du doch einfach generell die erste Zeile löschen, oder steh ich aufm Schlauch? Ansonsten in der Zeile "If Cells(i, 2).Value = "Orig" Then" "i" und "2" vertauschen. ------------------ Ist mir egal, wer Dein Vater ist; solange ich angle läuft hier keiner übers Wasser! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
schlathe Mitglied Konstrukteur
Beiträge: 9 Registriert: 27.04.2006
|
erstellt am: 20. Mrz. 2013 10:37 <-- editieren / zitieren --> Unities abgeben:
Hallo. leider haut das bei mir nicht hin. Ich hab dir das Datei mal hochgeladen. Auf Blatt 1 hab ich den Bereich den ich löschen möchte mal rot markeirt und in Blatt 2 ist es so wie ich die Tabelle brauchen würde. Vielen Dank schon im Voraus. MfG helmut ------------------ mfg schlathe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Axel.Strasser Ehrenmitglied V.I.P. h.c. Selbstständig im Bereich PLM/CAx
Beiträge: 4107 Registriert: 12.03.2001 Früher war vieles gut, und das wäre es heute immer noch, wenn man die Finger davon gelassen hätte!
|
erstellt am: 20. Mrz. 2013 10:50 <-- editieren / zitieren --> Unities abgeben: Nur für schlathe
1) wird eine Tabelle selektiert, die nicht vorhanden ist- Also ist Sheets("Tabelle1").Select und Range("A2").Select Unsinn 2) Willst Du Spalten löschen und nicht Zeilen (also Columns und nicht rows) Code: Sub Spalte_loeschen()For i = 1 To 20 If Cells(2, i).Value = "Orig" Then Range(Columns(1), Columns(i - 1)).Select Selection.Delete Exit For End If Next End Sub
Funktioniert jetzt nur im aktiven Blatt Axel PS: Ein bisschen solltest Du Dich aber schon mit der Syntax auseinandersetzen und vielleicht mal die VB Hilfe zu Rate ziehen, damit Du siehst was gemacht wird. ------------------ CAD.DE: Inoffizielle deutsche CATIA Hilfeseite Netiquette von cad.de Berufliches Umfeld: comsol.net; comsol.ch; Euromanagers
[Diese Nachricht wurde von Axel.Strasser am 20. Mrz. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Hofe Mitglied Werkzeugmacher
Beiträge: 440 Registriert: 12.01.2008
|
erstellt am: 20. Mrz. 2013 10:58 <-- editieren / zitieren --> Unities abgeben: Nur für schlathe
Jupp, Axel sacht was Sache ist. "Tabelle1" kam von mir, das hab ich auf die Schnelle in einer leeren Tabelle angepasst und beim posten nicht dran gedacht "A2" zu selektieren macht schönheitsmäßig schon Sinn, aber erst am Ende des Makros. ------------------ Ist mir egal, wer Dein Vater ist; solange ich angle läuft hier keiner übers Wasser! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
schlathe Mitglied Konstrukteur
Beiträge: 9 Registriert: 27.04.2006
|
erstellt am: 20. Mrz. 2013 11:10 <-- editieren / zitieren --> Unities abgeben:
|
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 20. Mrz. 2013 12:04 <-- editieren / zitieren --> Unities abgeben: Nur für schlathe
|
Axel.Strasser Ehrenmitglied V.I.P. h.c. Selbstständig im Bereich PLM/CAx
Beiträge: 4107 Registriert: 12.03.2001 Früher war vieles gut, und das wäre es heute immer noch, wenn man die Finger davon gelassen hätte!
|
erstellt am: 20. Mrz. 2013 13:47 <-- editieren / zitieren --> Unities abgeben: Nur für schlathe
|