Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Excel
  bestimmte Einträge automatisch in eine neue tabelle kopieren

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  bestimmte Einträge automatisch in eine neue tabelle kopieren (47558 mal gelesen)
shed777
Mitglied


Sehen Sie sich das Profil von shed777 an!   Senden Sie eine Private Message an shed777  Schreiben Sie einen Gästebucheintrag für shed777

Beiträge: 6
Registriert: 29.12.2006

erstellt am: 22. Feb. 2007 09:42    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

hallo zusammen,
eines kurz vorweg: bin noch ein newbie was excel betrifft, möcht mich aber vor allem gerne vermehrt mit VBA programmierung in excel auseinandersetzen.

jetzt zu meinem problem:
ich hab eine excel tabelle ('tabelle 1') in der von zeile 1 bis zeile 65500 einträge sind. bestimmte zeilen beginnen immer mit dem wort "Category: ", und genau diese zeilen möcht ich gerne automatisiert zeile für zeile in eine neue tabelle übertragen.

vielleicht geht das ja auch ganz unkompliziert mit "makro aufzeichnen", wär allerdings für jegliche hinweise dankbar!!!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

runkelruebe
Moderator
Straßen- / Tiefbau




Sehen Sie sich das Profil von runkelruebe an!   Senden Sie eine Private Message an runkelruebe  Schreiben Sie einen Gästebucheintrag für runkelruebe

Beiträge: 8075
Registriert: 09.03.2006

MS-Office 365 ProPlus x86
WIN7(x64)

erstellt am: 22. Feb. 2007 09:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für shed777 10 Unities + Antwort hilfreich

Hi,
hilft Dir schon ein Hinweis auf z.B. diesen Beitrag, und Du kannst es selbst anpassen?
Sonst meld Dich einfach nochmal, wo Du nicht weiterkommst :-)

------------------
Gruß,
runkelruebe                         Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

runkelruebe
Moderator
Straßen- / Tiefbau




Sehen Sie sich das Profil von runkelruebe an!   Senden Sie eine Private Message an runkelruebe  Schreiben Sie einen Gästebucheintrag für runkelruebe

Beiträge: 8075
Registriert: 09.03.2006

MS-Office 365 ProPlus x86
WIN7(x64)

erstellt am: 22. Feb. 2007 10:26    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für shed777 10 Unities + Antwort hilfreich

mal auf die Schnelle:
Code:
Public Sub Zeilen2()
Dim i As Integer
Dim cell As Range
i = 1
For Each cell In Tabelle1.Range("A:A")
If Not cell Is Nothing Then
    If cell.Value = "Category: " Then
        cell.EntireRow.Copy Destination:=Tabelle2.Rows(i)
        i = i + 1
    End If
End If
Next cell
End Sub

------------------
Gruß,
runkelruebe                         Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

shed777
Mitglied


Sehen Sie sich das Profil von shed777 an!   Senden Sie eine Private Message an shed777  Schreiben Sie einen Gästebucheintrag für shed777

Beiträge: 6
Registriert: 29.12.2006

erstellt am: 22. Feb. 2007 10:42    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Danke. habs jetzt ganz einfach mit dem Autofilter gemacht.
so steh ich vor einem erneuten Problem. Meine Tabelle sieht jetzt wie folgt aus:

Category: A
Category: A
Category: A
Category: B
Category: B
Category: C
Category: D
Category: D
Category: D
Category: E
.
.
.
.

ist es möglich mir automatisch auszugeben, wie oft welche Category vorkommt? also beispielsweise:
Category: A Anzahl: 3
Category: B Anzahl: 2
Category: C Anzahl: 1
usw..

?

Vielen Dank fürs Weiterhelfen 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Paulchen
Mitglied
Bauing./SW-Entwickler


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 22. Feb. 2007 10:47    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für shed777 10 Unities + Antwort hilfreich

Hallo,
Zitat:
ist es möglich mir automatisch auszugeben, wie oft welche Category vorkommt? also beispielsweise:
Ja - die 'Zauberformel' in  xls heißt "ZÄHLENWENN".

------------------
Gruß,
Frederik

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

runkelruebe
Moderator
Straßen- / Tiefbau




Sehen Sie sich das Profil von runkelruebe an!   Senden Sie eine Private Message an runkelruebe  Schreiben Sie einen Gästebucheintrag für runkelruebe

Beiträge: 8075
Registriert: 09.03.2006

MS-Office 365 ProPlus x86
WIN7(x64)

erstellt am: 22. Feb. 2007 10:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für shed777 10 Unities + Antwort hilfreich

Versuch's mal mit ="Anzahl " &ZÄHLENWENN(A1:A10;A1)

[edit] aah, der Herr Paulchen ist aufgestanden... und schnell isser geworden ;-) [/edit]

------------------
Gruß,
runkelruebe                         Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

shed777
Mitglied


Sehen Sie sich das Profil von shed777 an!   Senden Sie eine Private Message an shed777  Schreiben Sie einen Gästebucheintrag für shed777

Beiträge: 6
Registriert: 29.12.2006

erstellt am: 22. Feb. 2007 12:42    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

danke für die formel, funktioniert zwar, is allerdings etwas zu umständlich bei 30000 zeilen.
vielleicht eine idee wie man das automatisiert anstellen kann?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Paulchen
Mitglied
Bauing./SW-Entwickler


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 22. Feb. 2007 12:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für shed777 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von shed777:
...is allerdings etwas zu umständlich bei 30000 zeilen...
Wieso? Was spricht denn gegen
=ZÄHLENWENN(A1:A30000;"Schnitzel")
???

------------------
Gruß,
Frederik

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

runkelruebe
Moderator
Straßen- / Tiefbau




Sehen Sie sich das Profil von runkelruebe an!   Senden Sie eine Private Message an runkelruebe  Schreiben Sie einen Gästebucheintrag für runkelruebe

Beiträge: 8075
Registriert: 09.03.2006

MS-Office 365 ProPlus x86
WIN7(x64)

erstellt am: 22. Feb. 2007 13:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für shed777 10 Unities + Antwort hilfreich

@Paulchen kann es sein, daß er 30000 unterschiedliche Einträge meint?
@shed: auch wenn Du mein Makro von vorhin ja nicht wolltest, hiermit könntest Du das bewerkstelligen:
Code:
Public Sub Zeilen2()
Dim i As Integer
Dim cell As Range
i = 1
For Each cell In Tabelle1.Range("A:A")
If Not cell Is Nothing Then
    If cell.Value = "Category: " Then
        cell.EntireRow.Copy Destination:=Tabelle2.Rows(i)
       
        'hier ist die Zeile für die Formel:
        'Annahme: Das Category: steht in Spalte A,
        'die Formel kommt in Spalte E
        'und abfragen tut sie Werte aus Spalte C
       
        Tabelle2.Cells(i, 5).FormulaR1C1 = "=COUNTIF(C[-2],RC[-2])"
        i = i + 1
    End If
End If
Next cell
End Sub

Grundannahmen stehen als Kommentar drin, ich würd's Dir ja an Dein sheet anpassen, aber Du hast ja keins hochgeladen 

------------------
Gruß,
runkelruebe                         Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

shed777
Mitglied


Sehen Sie sich das Profil von shed777 an!   Senden Sie eine Private Message an shed777  Schreiben Sie einen Gästebucheintrag für shed777

Beiträge: 6
Registriert: 29.12.2006

erstellt am: 22. Feb. 2007 15:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

OK, danke euch beiden für die rasche Hilfe. Habs hinbekommen was ich wollte!!! :-)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

ralficad
Mitglied
Konstrukteur


Sehen Sie sich das Profil von ralficad an!   Senden Sie eine Private Message an ralficad  Schreiben Sie einen Gästebucheintrag für ralficad

Beiträge: 330
Registriert: 25.11.2005

ACAD 2005 - EPT
AMD Athlon XP 2800+
2,08 GHz 1,0 GB RAM
WIN XP Prof., SP2

erstellt am: 12. Apr. 2007 10:29    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für shed777 10 Unities + Antwort hilfreich

Ich häng mich mal hier rein. Habe das kleine Proggi hier gemopst und geändert. Es soll mir Zeilen kopieren aus Tabelle1 in Tabell2, unter bestimmten Bedingungen, wie oben halt. Das passiert auch alles wunderbar, bis das in den kopierten Zellen Formeln sind. Dann fehlen die Bezüge. Wie kann ich den reinen Inhalt der Zeilen kopieren???

------------------
ralfi 

Freunde sind gut, vorausgesetzt, daß man sie nicht nötig hat.      Roda-Roda

bekennender Fan von bluedress & Co.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

runkelruebe
Moderator
Straßen- / Tiefbau




Sehen Sie sich das Profil von runkelruebe an!   Senden Sie eine Private Message an runkelruebe  Schreiben Sie einen Gästebucheintrag für runkelruebe

Beiträge: 8075
Registriert: 09.03.2006

MS-Office 365 ProPlus x86
WIN7(x64)

erstellt am: 12. Apr. 2007 10:50    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für shed777 10 Unities + Antwort hilfreich

Auf die Schnelle: Nimm ein reines copy und ein folgendes PasteSpecial Paste:=xlPasteValues [...]

Für konkrete Vorschläge: up die Mapp' ;-)

------------------
Gruß,
runkelruebe                         Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Paulchen
Mitglied
Bauing./SW-Entwickler


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 12. Apr. 2007 11:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für shed777 10 Unities + Antwort hilfreich

Hey ralfi,

schmeiß doch für solche Fälle einfach mal den Makrorecorder an. Das Zauberwort in xls heißt "Inhalte einfügen"; steht im Kontextmenü der rMT zur Verfügung, wenn eine Zelle kopiert wird, bzw. Menü Bearbeiten - Inhalte einfügen... Aus dem aufgezeichneten Makro könntest Du Dir dann auch 'rauslesen, was z.B. beim reinen Formel einfügen passiert, falls Du das als nächstes brauchst .

Ansonsten siehe ruebes  Vorschlag.

------------------
Gruß,
Frederik

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

ralficad
Mitglied
Konstrukteur


Sehen Sie sich das Profil von ralficad an!   Senden Sie eine Private Message an ralficad  Schreiben Sie einen Gästebucheintrag für ralficad

Beiträge: 330
Registriert: 25.11.2005

ACAD 2005 - EPT
AMD Athlon XP 2800+
2,08 GHz 1,0 GB RAM
WIN XP Prof., SP2

erstellt am: 12. Apr. 2007 11:17    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für shed777 10 Unities + Antwort hilfreich

ich bin ein Blinder bei der Programmierung

Hier mein code:

Public Sub Zeilen2()
Dim i As Integer
Dim cell As Range
i = 1
For Each cell In Tabelle1.Range("C71:C877")
If Not cell Is Nothing Then
    If cell.Value > "0" Then
        cell.EntireRow.Copy Destination:=Tabelle2.Rows(i)
        Tabelle2.Cells(i, 5).FormulaR1C1 = "=COUNTIF(C[-2],RC[-2])"
        i = i + 1
    End If
End If
Next cell
End Sub

wo muss das selection.paste hin, (und was macht eigentlich countif ???)

------------------
ralfi 

Freunde sind gut, vorausgesetzt, daß man sie nicht nötig hat.      Roda-Roda

bekennender Fan von bluedress & Co.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Paulchen
Mitglied
Bauing./SW-Entwickler


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 12. Apr. 2007 11:32    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für shed777 10 Unities + Antwort hilfreich

Mach's mal schrittweise, mit dem MAKRORECORDER, da lernste was.

Code:
Sub Makro2()
'
' Makro2 Makro
' Makro am 12.04.2007 von mir aufgezeichnet
'

'
    Selection.Copy'Eine Zelle mit Inhalt ist aktiv.
    Range("A2").Select'willkürlich; da wird's dann eingefügt
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
End Sub


Ist natürlich unschöner Recorder-Code, aber naja, auf die Schnelle... Das sollte doch übertragbar sein?

COUNTIF heißt auf Deutsch: ZÄHLENWENN, das ist 'ne xls-Formel. Und

Zitat:
Für konkrete Vorschläge: up die Mapp' ;-)
macht die Sache echt leichter ;-) Nur Mut...

------------------
Gruß,
Frederik

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

runkelruebe
Moderator
Straßen- / Tiefbau




Sehen Sie sich das Profil von runkelruebe an!   Senden Sie eine Private Message an runkelruebe  Schreiben Sie einen Gästebucheintrag für runkelruebe

Beiträge: 8075
Registriert: 09.03.2006

MS-Office 365 ProPlus x86
WIN7(x64)

erstellt am: 12. Apr. 2007 11:32    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für shed777 10 Unities + Antwort hilfreich

Uiui, code klauen und einfach mal einsetzen, ohne zu wissen was der macht... gut dass man mir vertrauen kann 
also:
das countif ist die dt. ZählenWenn - Funktion.
ich zitier mich mal selber ;-) :
Zitat:
        'Annahme: Das Category: steht in Spalte A,
        'die Formel kommt in Spalte E
        'und abfragen tut sie Werte aus Spalte C

Du schreibst also hier explicit eine Formel in Spalte E. Ich weiß jetzt nicht, ob Du das wirklich möchtest ;-) also vielleicht besser mal auskommentieren die Zeilen.
Zum copy meld ich mich gleich nochmal, muß kurz weg

------------------
Gruß,
runkelruebe                         Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

ralficad
Mitglied
Konstrukteur


Sehen Sie sich das Profil von ralficad an!   Senden Sie eine Private Message an ralficad  Schreiben Sie einen Gästebucheintrag für ralficad

Beiträge: 330
Registriert: 25.11.2005

ACAD 2005 - EPT
AMD Athlon XP 2800+
2,08 GHz 1,0 GB RAM
WIN XP Prof., SP2

erstellt am: 12. Apr. 2007 11:59    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für shed777 10 Unities + Antwort hilfreich

ach man, das war natürlich reiner Blödsinn mit dem countif, hab ich doch schon weiter oben rausbekommen, was es ist und das ich's nicht brauch. Jetzt hab ich alles geändert, wie ich denk, das es richtig ist, da schreibt er mir "Laufzeitfehler "424" Objekt fehlt", hmm.
(Eingabe ist Quellblatt, Tabelle1 ist Zielblatt)

Public Sub Zeilen2()
Dim i As Integer
Dim cell As Range
i = 1
For Each cell In Eingabe.Range("C71:C877")
If Not cell Is Nothing Then
    If cell.Value > "0" Then
        cell.EntireRow.Copy Destination:=Tabelle1.Rows(i)
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        i = i + 1
    End If
End If
Next cell
End Sub

------------------
ralfi 

Freunde sind gut, vorausgesetzt, daß man sie nicht nötig hat.      Roda-Roda

bekennender Fan von bluedress & Co.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

runkelruebe
Moderator
Straßen- / Tiefbau




Sehen Sie sich das Profil von runkelruebe an!   Senden Sie eine Private Message an runkelruebe  Schreiben Sie einen Gästebucheintrag für runkelruebe

Beiträge: 8075
Registriert: 09.03.2006

MS-Office 365 ProPlus x86
WIN7(x64)

erstellt am: 12. Apr. 2007 12:05    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für shed777 10 Unities + Antwort hilfreich

So, hier nochmal der Full-Service ;-)
Code:
Public Sub Zeilen2()
Dim i As Integer
Dim cell As Range
i = 1
For Each cell In Eingabe.Range("C71:C877")
If Not cell Is Nothing Then
    If cell.Value > "0" Then
        cell.EntireRow.Copy 'Destination:=Tabelle2.Rows(i)
        Tabelle1.Cells(i, 1).PasteSpecial , Paste:=xlPasteValues
        i = i + 1
    End If
End If
Next cell
End Sub

Nur vorhandenes umgebaut, ohne Rücksicht auf evtl. bessere Lösungen, wer eine hat, bitte posten, ich bin raus.

@ralfi: Wechsel bitte in den VBA-Editor und geh das Makro und jedes zukünftige, was Du so findest ;-) schrittweise (mit F8) durch und schau Dir an, was da genau passiert, dann kommst Du nächstes Mal schneller (weil selber) zu einer Lösung.

[rredit] Tabellennamen angepaßt. Läuft's so? [/rredit]

------------------
Gruß,
runkelruebe                         Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

ralficad
Mitglied
Konstrukteur


Sehen Sie sich das Profil von ralficad an!   Senden Sie eine Private Message an ralficad  Schreiben Sie einen Gästebucheintrag für ralficad

Beiträge: 330
Registriert: 25.11.2005

ACAD 2005 - EPT
AMD Athlon XP 2800+
2,08 GHz 1,0 GB RAM
WIN XP Prof., SP2

erstellt am: 12. Apr. 2007 12:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für shed777 10 Unities + Antwort hilfreich

IT WORKS

------------------
ralfi 

Freunde sind gut, vorausgesetzt, daß man sie nicht nötig hat.      Roda-Roda

bekennender Fan von bluedress & Co.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

ralficad
Mitglied
Konstrukteur


Sehen Sie sich das Profil von ralficad an!   Senden Sie eine Private Message an ralficad  Schreiben Sie einen Gästebucheintrag für ralficad

Beiträge: 330
Registriert: 25.11.2005

ACAD 2005 - EPT
AMD Athlon XP 2800+
2,08 GHz 1,0 GB RAM
WIN XP Prof., SP2

erstellt am: 12. Apr. 2007 16:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für shed777 10 Unities + Antwort hilfreich

Zum Schluss noch'ne Frage:

Die Funktion:

  If cell.Value > "0" Then...

tut, was sie soll, aber die Funktion:

  If cell.Value < "0" Then...

versagt, da sie auch reagiert, wenn in Zellen nichts oder Wörter stehen. Ist bestimmt ganz einfach, stimps??

------------------
ralfi 

Freunde sind gut, vorausgesetzt, daß man sie nicht nötig hat.      Roda-Roda

bekennender Fan von bluedress & Co.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

runkelruebe
Moderator
Straßen- / Tiefbau




Sehen Sie sich das Profil von runkelruebe an!   Senden Sie eine Private Message an runkelruebe  Schreiben Sie einen Gästebucheintrag für runkelruebe

Beiträge: 8075
Registriert: 09.03.2006

MS-Office 365 ProPlus x86
WIN7(x64)

erstellt am: 12. Apr. 2007 16:26    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für shed777 10 Unities + Antwort hilfreich

Was passiert, wenn Du die "" wegläßt?

<- raus in die Sonne, bis morgen :-)

------------------
Gruß,
runkelruebe                         Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Paulchen
Mitglied
Bauing./SW-Entwickler


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 12. Apr. 2007 17:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für shed777 10 Unities + Antwort hilfreich

Hey-Ho,

ich versuche mal eine würdevolle Schönwettervertretung... Kopier Dir mal das

Code:
Option Explicit

Sub Zellinhalt()

Dim rgCell As Range
Set rgCell = ActiveCell

    If IsEmpty(rgCell) Then MsgBox "Leere Zelle"
    If Not IsEmpty(rgCell) And rgCell.Value = 0 Then MsgBox "Zellwert ist 0 (Null)"
    If rgCell.Value = "0" Then MsgBox "000" 'interessant!
    If Not IsEmpty(rgCell) And IsNumeric(rgCell) Then MsgBox "Zahl: " & rgCell.Value
    If Not IsEmpty(rgCell) And rgCell.HasFormula = True Then MsgBox "Formel: " & rgCell.Formula
    If Not IsEmpty(rgCell) And Not IsNumeric(rgCell) Then MsgBox "Nichtleere Zelle! Text :" & rgCell.Value
   
Set rgCell = Nothing

End Sub


in ein beliebiges Modul. Dann machst Du Dir das VBA-Fenster etwas kleiner, sodaß Du die Zelle in xls sehen kannst. Den Cursor irgendwo zwischen Sub und End Sub, F8 drücken. Beobachte mal, was passiert.

Nun darfst Du selbst experimentieren: Gib in Deine Zelle mal nix, mal 'ne Zahl, mal 'ne Null, mal Text, mal ein Leerzeichen und auch mal 'ne Formel (z.B. =2+3) ein. Entsprechend sollten die msgboxen auftauchen. Natürlich lassen sich die ifs auch verschachteln oder stattdessen mit select case abfragen. Das hier dient nur zu Demonstrationszwecken!!!

Prinzipiell würde ich folgendes Vorgehen empfehlen:

-Prüfen, ob die Zelle überhaupt irgend einen Wert enthält (Not IsEmpty)
-Prüfen, ob der Wert eine Zahl ist (IsNumeric)

Darauf kannst Du dann reagieren - recht viel mehr Möglichkeiten gibt es nicht. Eine Zelle kann

-leer sein oder
-nicht leer sein.

Wenn sie leer ist, ist hoffentlich alles klar ?!

Wenn sie nicht leer ist, geht es weiter: Inhalt vorhanden, nur welcher?

-Text
-Zahl
-Formel
-Leerzeichen (das ist ein wenig fies, weil man's nicht "sieht")

Hoffe, ich habe nix vergessen?! Was Du damit vorhast, bleibt der Phantasie überlassen.

------------------
Gruß,
Frederik

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

runkelruebe
Moderator
Straßen- / Tiefbau




Sehen Sie sich das Profil von runkelruebe an!   Senden Sie eine Private Message an runkelruebe  Schreiben Sie einen Gästebucheintrag für runkelruebe

Beiträge: 8075
Registriert: 09.03.2006

MS-Office 365 ProPlus x86
WIN7(x64)

erstellt am: 13. Apr. 2007 07:28    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für shed777 10 Unities + Antwort hilfreich

Guten Morgen zusammen,
Zitat:
ich versuche mal eine würdevolle Schönwettervertretung

sehr schön, brauchst Dir diesen Sommer nichts mehr weiter vornehmen ;-)
da mußte ich mit rumspielen und mir ist folgendes aufgefallen:
Du schreibst interessant, aber nicht warum. Also hab ich mal verschiedene Nullen ausprobiert (=1-1; 0; '0; '-0; usw.) und bekomme jedesmal diese 000 MsgBox.
Weitergespielt:
MsgBox "IsNumeric = " & IsNumeric(ActiveCell) & Chr(10) & "VarType = " & VarType(ActiveCell)

Mitgerechnet werden die VarTypes = 8 (vbString) nicht immer (staun: bei Summe=() nicht, bei =A1 schon) sind aber IsNumeric = True, also bei Dir auch immer "Zahl".

Und zurück zu ralfi:

< "0"  : LeereZellen, Leerzeichen, negative Zahlen
< 0    : negative Zahlen
= "0"  : Alles was 0 ist
= 0    : Alles was 0 ist, LeereZellen
> "0"  : Texte, positive Zahlen
> 0    : Leerzeichen, Texte, positive Zahlen

Wer hat die links zur Erklärung?

------------------
Gruß,
runkelruebe                         Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Paulchen
Mitglied
Bauing./SW-Entwickler


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 13. Apr. 2007 08:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für shed777 10 Unities + Antwort hilfreich

Moin!

Na, zumindest bin ich scheinbar nicht völlig unwürdig ;-)! Schön, daß Du weiterspielst...

Zunächst mal liefert bei mir die Eingabe von " 0" das gleiche wie "0" (beide OHNE die ") - xls baut ein Leerzeichen, gefolgt von einer Zahl, automatisch in eine reine Zahl ohne LZ um?!; leicht zu prüfen, wenn in einer Hilspalte nebendran =CODE(Zelle) steht: 32 für LZ, 48 für 0.

Zitat:
...bekomme jedesmal diese 000 MsgBox...
Da muß ich Einspruch erheben! Bei " '0" (OHNE ") gibt's die nicht - da springt bei mir nur die letzte an (nichtleer, nichtnumerisch).

Nebenbei bemerkt - da ausschweifend - die msgboxen sind nicht sooo toll hierfür; ich tendiere zur Anzeige des Direktfensters mit einem Debug.Print xxx. Eleganter und weniger nervige Popups . Also:

Code:
Sub Zelldirekt()

Dim rgCell As Range
Set rgCell = ActiveCell

    Debug.Print Chr(10) & "===Wert:" & ActiveCell.Value & "==="
   
    If IsEmpty(rgCell) Then Debug.Print "Leere Zelle"
    If Not IsEmpty(rgCell) And rgCell.Value = 0 Then Debug.Print "Zellwert ist 0 (Null)"
    If rgCell.Value = "0" Then Debug.Print "000" 'interessant!
    If Not IsEmpty(rgCell) And IsNumeric(rgCell) Then Debug.Print "Zahl: " & rgCell.Value
    If Not IsEmpty(rgCell) And rgCell.HasFormula = True Then Debug.Print "Formel: " & rgCell.Formula
    If Not IsEmpty(rgCell) And Not IsNumeric(rgCell) Then Debug.Print "Nichtleere Zelle! Text :" & rgCell.Value
    'ruebe:
    Debug.Print "IsNumeric = " & IsNumeric(ActiveCell) & Chr(10) & "VarType = " & VarType(ActiveCell)
   
Set rgCell = Nothing

End Sub


Deine Erweiterung mit eingebaut ;-), läuft mit F5 anstandslos durch. Könntest Du
Zitat:
Mitgerechnet werden die VarTypes = 8 (vbString) nicht immer (staun: bei Summe=() nicht, bei =A1 schon) sind aber IsNumeric = True, also bei Dir auch immer "Zahl".
bitte nochmal etwas ausführlicher darstellen? Komme gerade nicht so recht mit ...

------------------
Gruß,
Frederik

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

ralficad
Mitglied
Konstrukteur


Sehen Sie sich das Profil von ralficad an!   Senden Sie eine Private Message an ralficad  Schreiben Sie einen Gästebucheintrag für ralficad

Beiträge: 330
Registriert: 25.11.2005

ACAD 2005 - EPT
AMD Athlon XP 2800+
2,08 GHz 1,0 GB RAM
WIN XP Prof., SP2

erstellt am: 13. Apr. 2007 08:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für shed777 10 Unities + Antwort hilfreich

ich danke euch, freu mich, das mein Prob. euch zu geistigen Höchstleistungen animiert.

------------------
ralfi 

Freunde sind gut, vorausgesetzt, daß man sie nicht nötig hat.      Roda-Roda

bekennender Fan von bluedress & Co.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

runkelruebe
Moderator
Straßen- / Tiefbau




Sehen Sie sich das Profil von runkelruebe an!   Senden Sie eine Private Message an runkelruebe  Schreiben Sie einen Gästebucheintrag für runkelruebe

Beiträge: 8075
Registriert: 09.03.2006

MS-Office 365 ProPlus x86
WIN7(x64)

erstellt am: 13. Apr. 2007 09:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für shed777 10 Unities + Antwort hilfreich

Zitat:
Da muß ich Einspruch erheben! Bei " '0" (OHNE ") gibt's die nicht - da springt bei mir nur die letzte an (nichtleer, nichtnumerisch).

hmm.. mein Excel ist anders als Dein Excel... 2003?

0 : wahr;5; ="0";=0;Zellwert ist 0(Null);000;Zahl: 0
'0: wahr;8; ="0";=0;Zellwert ist 0(Null);000;Zahl: 0

Zitat:
xls baut ein Leerzeichen, gefolgt von einer Zahl, automatisch in eine reine Zahl ohne LZ um?
ja, tut es, da ist mein Excel wieder wie Dein Excel ;-)
Zitat:
etwas ausführlicher darstellen

schwierig, am besten selber testen:
Eine Zelle: =Summe(A1) andere: =A1 und formatiere A1 einmal als Text, einmal als Standard, einmal als Zahl und guck Dir die Ergebnisse und die Ausgabe des Makros an.
Zitat:
die msgboxen sind nicht sooo toll hierfür; ich tendiere zur Anzeige des Direktfensters mit einem Debug.Print

jepp, hab ich auch erst gemacht, wollte aber hier bei der MsgBox-Variante bleiben ;-)

hmm. Ob wir das anderweitig weiterdiskutieren sollten? Wir schweifen ein wenig vom Grundproblem ab. Interessiert sich da sonst noch wer für? Sonst gehen wir zwei gleich zur PM über ;-)

------------------
Gruß,
runkelruebe                         Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz