H2O: Excel: Domain-Filterung

Hallo.

Die Datei in Excel enhält mehrere Spalten und viele Zeilen.
Die erste Spalte enthält immer eine Email-Adresse und die 3. Zeile ist immer leer.
Nun will ich die Domain aus der ersten Spalte in die 3. Zeile eintragen.
Da das aber seehr viele Zeilen sind, brächte ich ein Programm oder eine Anweisung an Excel, damit das klappt.

Habt ihr eine Idee wie ich das machen könnte?

Vielen Dank,
H2O

--
#*~!:     Download Opera
Selfcode: [ie:% fl:( br:< va:) ls:[ fo:| rl:( n4:( ss:) de:> js:| ch:? sh:( mo:| zu:}](http://www.peter.in-berlin.de/projekte/selfcode/?code=ie%3A%25%20fl%3A(%20br%3A%3C%20va%3A)%20ls%3A%5B%20fo%3A%7C%20rl%3A(%20n4%3A(%20ss%3A)%20de%3A%3E%20js%3A%7C%20ch%3A%3F%20sh%3A(%20mo%3A%7C%20zu%3A%7D)
                          Decoder    -    Infos
  1. Hi H2O,

    Die Datei in Excel enhält mehrere Spalten und viele Zeilen.
    Die erste Spalte enthält immer eine Email-Adresse und die 3. Zeile ist immer leer.
    Nun will ich die Domain aus der ersten Spalte in die 3. Zeile eintragen.

    könntest Du das mal mit einem Beispiel verdeutlichen?

    Da das aber seehr viele Zeilen sind, brächte ich ein Programm oder eine Anweisung an Excel, damit das klappt.

    Habt ihr eine Idee wie ich das machen könnte?

    Wenn ich Dich verstehen würde, sicher.

    Viele Grüße

    Jörg

  2. Hallo H2O.

    Ich habe gerade einen Weg gefunden...
    Ich exportiere die Datei erst als CSV-Datei und dann kann jetzt muss ich mir in PHP nur noch ein kleines Programm dafür schreiben :)

    Sollte ich mich etwas unverständlich ausgedrückt haben, hier nochmal verdeutlicht:

    Email              |        blabla        |    Domain
      test@....de         |    irgendein Text    |
      blabla@.........de  |  blubblub            |
      blub@.....de        |     unwichtig        |

    Und nachdem das Programm durch ist, soll es so aussehen:

    Email              |        blabla        |    Domain
      test@....de         |    irgendein Text    |   .....de
      blabla@.........de  |  blubblub            |   .........de
      blub@.....de        |     unwichtig        |   .....de

    (da ich hier keine richtigen Email-Adressen nennen wollte habe ich einfach die Buchstaben durch einen Punkt ersetzt)

    Man liest sich und danke an diejenigen, die sich den Kopf zerbrochen haben ;)
    H2O

    --
    #*~!:     Download Opera
    Selfcode: [ie:% fl:( br:< va:) ls:[ fo:| rl:( n4:( ss:) de:> js:| ch:? sh:( mo:| zu:}](http://www.peter.in-berlin.de/projekte/selfcode/?code=ie%3A%25%20fl%3A(%20br%3A%3C%20va%3A)%20ls%3A%5B%20fo%3A%7C%20rl%3A(%20n4%3A(%20ss%3A)%20de%3A%3E%20js%3A%7C%20ch%3A%3F%20sh%3A(%20mo%3A%7C%20zu%3A%7D)
                              Decoder    -    Infos
    1. Hi H2O,

      Ich habe gerade einen Weg gefunden...
      Ich exportiere die Datei erst als CSV-Datei und dann kann jetzt muss ich mir in PHP nur noch ein kleines Programm dafür schreiben :)

      Wer es umständlich mag ... ;-)

      Ich würde es so machen, wenn die Daten in Spalte A beginnen:

      Dim lngZ As Long
      For lngZ = 1 To Cells(Rows.Count, 1).End(xlUp).Row
          Cells(lngZ, 3) = Right(Cells(lngZ, 1), Len(Cells(lngZ, 1)) - InStr(1, Cells(lngZ, 1), "@"))
      Next

      Viele Grüße

      Jörg

      1. Hallo Jörg.

        Wer es umständlich mag ... ;-)

        Naja, ich habe noch _nie_ mit Makros gearbeitet und habe überhaupt keine Ahnung davon :(
        Und ich denke mal es lohnt sich für mich nicht, wenn ich mich jetzt mit VB und Makros beschäftige, da ich es warscheinlich so schnell nicht mehr brauchen werde (das letzte Mal, dass ich Excel benutzt habe ist schon ein paar Monate her).

        Ich würde es so machen, wenn die Daten in Spalte A beginnen:

        Die Daten sollen aus Spalte A in Spalte C kommen.
        Sie beginnen in Zeile 2.

        Dim lngZ As Long
        For lngZ = 1 To Cells(Rows.Count, 1).End(xlUp).Row
            Cells(lngZ, 3) = Right(Cells(lngZ, 1), Len(Cells(lngZ, 1)) - InStr(1, Cells(lngZ, 1), "@"))
        Next

        Habe ich ausprobiert, nachdem ich halbwegs raushabe, wie das mit den Makros und VB läuft ;)
        "Fehler beim Kompilieren:

        Außerhalb einer Prozedur ungültig"

        ? Ich habe keine Ahnung was gemeint ist :-/

        Danke,
        H2O

        --
        #*~!:     Download Opera
        Selfcode: [ie:% fl:( br:< va:) ls:[ fo:| rl:( n4:( ss:) de:> js:| ch:? sh:( mo:| zu:}](http://www.peter.in-berlin.de/projekte/selfcode/?code=ie%3A%25%20fl%3A(%20br%3A%3C%20va%3A)%20ls%3A%5B%20fo%3A%7C%20rl%3A(%20n4%3A(%20ss%3A)%20de%3A%3E%20js%3A%7C%20ch%3A%3F%20sh%3A(%20mo%3A%7C%20zu%3A%7D)
                                  Decoder    -    Infos
        1. Hi H2O,

          Naja, ich habe noch _nie_ mit Makros gearbeitet und habe überhaupt keine Ahnung davon :(

          nee, das ist ja auch kein Makro. ;-)

          Und ich denke mal es lohnt sich für mich nicht, wenn ich mich jetzt mit VB und Makros beschäftige, da ich es warscheinlich so schnell nicht mehr brauchen werde (das letzte Mal, dass ich Excel benutzt habe ist schon ein paar Monate her).

          Schade eigentlich, damit kann man so viel machen ...

          Die Daten sollen aus Spalte A in Spalte C kommen.
          Sie beginnen in Zeile 2.

          Ja, da kannst Du es fast so übernehmen, darfst halt nur nicht in Zeile 1 beginnen.

          Habe ich ausprobiert, nachdem ich halbwegs raushabe, wie das mit den Makros und VB läuft ;)
          "Fehler beim Kompilieren:

          Außerhalb einer Prozedur ungültig"

          Hast Du es auch in eine Prozedur eingebaut - also mit Namen?

          So müßte es laufen, wenn die Tabelle mit den Daten aktiv ist:

          Sub Das_ist_der_Name()
          Dim lngZ As Long
          For lngZ = 2 To Cells(Rows.Count, 1).End(xlUp).Row
              Cells(lngZ, 3) = Right(Cells(lngZ, 1), Len(Cells(lngZ, 1)) - InStr(1, Cells(lngZ, 1), "@"))
          Next
          End Sub

          ? Ich habe keine Ahnung was gemeint ist :-/

          Aber jetzt? ;-)

          Übrigens: Das ist weder VB, noch VBS, das ist VBA und zwar Excel-VBA ...

          Viele Grüße

          Jörg

          1. Hallo Jörg.

            nee, das ist ja auch kein Makro. ;-)

            Also wenn ich in VB (oder wie auch immer) deine Prozedur einfüge, dann kann ich diese über Extras -> Makro -> Makros aufrufen. .oO

            Schade eigentlich, damit kann man so viel machen ...

            Ja, aber es ist so, dass ich das nunmal nicht brauche, denn ich arbeite viel mehr mit PHP und Websprachen, als mit Office (außer ich will mir etwas ausdrucken, da hat sich Word bewährt *g*)...

            Hast Du es auch in eine Prozedur eingebaut - also mit Namen?

            äääähhhmmm... ;)

            So müßte es laufen, wenn die Tabelle mit den Daten aktiv ist:

            Sub Das_ist_der_Name()
            Dim lngZ As Long
            For lngZ = 2 To Cells(Rows.Count, 1).End(xlUp).Row
                Cells(lngZ, 3) = Right(Cells(lngZ, 1), Len(Cells(lngZ, 1)) - InStr(1, Cells(lngZ, 1), "@"))
            Next
            End Sub

            Klasse, jetzt sind es sogar schon 2 Wege auf die ich das machen kann...
            Aber ich denke mal ich werde diese Lösung hier nehmen, einfach weil dann auch im Feld der Name steht und nicht die Formel :)

            Aber jetzt? ;-)

            Jawohl Herr Lehrer ;)

            Übrigens: Das ist weder VB, noch VBS, das ist VBA und zwar Excel-VBA ...

            *g* Ich kenne den Unterschied sowieso nicht...

            Vielen Dank,
            H2O

            --
            #*~!:     Download Opera
            Selfcode: [ie:% fl:( br:< va:) ls:[ fo:| rl:( n4:( ss:) de:> js:| ch:? sh:( mo:| zu:}](http://www.peter.in-berlin.de/projekte/selfcode/?code=ie%3A%25%20fl%3A(%20br%3A%3C%20va%3A)%20ls%3A%5B%20fo%3A%7C%20rl%3A(%20n4%3A(%20ss%3A)%20de%3A%3E%20js%3A%7C%20ch%3A%3F%20sh%3A(%20mo%3A%7C%20zu%3A%7D)
                                      Decoder    -    Infos
            1. gudn tach!

              Übrigens: Das ist weder VB, noch VBS, das ist VBA und zwar Excel-VBA ...

              *g* Ich kenne den Unterschied sowieso nicht...

              dagegen kann man was tun:
              zitate aus wikipedia:

              Visual Basic (Abk. VB) ist ein Sammelbegriff für verschiedene Programmierumgebungen der Firma Microsoft, die auf der Programmiersprache BASIC basieren und aus der MS-DOS-Anwendung QBasic hervorgegangen sind.

              Visual Basic for Applications (VBA) von Microsoft ist eine aus dem von Microsoft entwickelten Basic-Dialekt Visual Basic (VB) abgeleitete Makrosprache, die zur Steuerung von Programmabläufen in den Microsoft Office-Programmen entwickelt wurde.

              Visual Basic Script (kurz: VBScript oder VBS) ist eine von Microsoft entwickelte Skriptsprache. Sie ist eng verwandt mit Visual Basic (VB) und Visual Basic for Applications (VBA) und wird üblicherweise interpretiert.

              quellen:
              vb, vba, vbs

              prost
              seth

              1. gudn tach!

                Hi seth,

                ich zitiere jetzt mal nicht alles. ;-)

                Beim Excel-Treffen 2000 hatten wir nachts eine längere Diskussion, was wohl wem übergeordnet ist und was aus wem hervorgekommen ist. Jeder hatte so seine Meinung, auf einen Konsens sind wir bis heute nicht gekommen. Fakt ist, daß man das nicht so einfach beschreiben kann.

                Einerseits ist VB _die_ Programmiersprache (hinsichtlich VB/VBA; VBS ist da doch etwas anders gelagert), andererseits kann man mit VBA fast alles machen, was man mit VB auch kann. Allerdings kann man in VBA die Eigenschaften und Methoden der jeweiligen Anwendung verwenden, was man normalerweise mit VB nicht kann - es sei denn, man spricht die Anwendung als Objekt an und kann so auch deren Eigenschaften/Methoden verwenden.

                Meine Meinung dazu: Ein VB-Programm ist kompiliert, VBA-Programme brauchen die Anwendungen als Interpreter, VBS braucht den Windows Scripting Host als Interpreter.

                Viele Grüße

                Jörg

            2. Hi H2O,

              Also wenn ich in VB (oder wie auch immer) deine Prozedur einfüge, dann kann ich diese über Extras -> Makro -> Makros aufrufen. .oO

              Naja, Microsoft wäre wahrscheinlich auch überfordert, noch nach Makros und VBA zu unterscheiden ;-)
              Wobei viele Anwender auch einfach nur von Makros reden ...

              Aber jetzt? ;-)

              Jawohl Herr Lehrer ;)

              Nee, seit Anfang August nicht mehr ;-)

              Viele Grüße

              Jörg

              1. Hallo Jörg.

                Naja, Microsoft wäre wahrscheinlich auch überfordert, noch nach Makros und VBA zu unterscheiden ;-)

                *gg* Warscheinlich...

                Wobei viele Anwender auch einfach nur von Makros reden ...

                Na da bin ich ja froh ;)

                Nee, seit Anfang August nicht mehr ;-)

                Im Ernst?

                H2O

                --
                #*~!:     Download Opera
                Selfcode: [ie:% fl:( br:< va:) ls:[ fo:| rl:( n4:( ss:) de:> js:| ch:? sh:( mo:| zu:}](http://www.peter.in-berlin.de/projekte/selfcode/?code=ie%3A%25%20fl%3A(%20br%3A%3C%20va%3A)%20ls%3A%5B%20fo%3A%7C%20rl%3A(%20n4%3A(%20ss%3A)%20de%3A%3E%20js%3A%7C%20ch%3A%3F%20sh%3A(%20mo%3A%7C%20zu%3A%7D)
                                          Decoder    -    Infos
                1. Hi H2O,

                  Nee, seit Anfang August nicht mehr ;-)

                  Im Ernst?

                  Ja, seitdem bin ich nur noch mein eigener Chef[1] ...

                  Viele Grüße und einen schönen Abend noch

                  Jörg

                  [1] abgesehen von meiner besseren Hälfte ;-)

                  1. Hallo Jörg.

                    Ja, seitdem bin ich nur noch mein eigener Chef[1] ...

                    Also eine Ich-AG... *SCNR*

                    Viele Grüße und einen schönen Abend noch

                    Danke auch ;)

                    H2O

                    --
                    #*~!:     Download Opera
                    Selfcode: [ie:% fl:( br:< va:) ls:[ fo:| rl:( n4:( ss:) de:> js:| ch:? sh:( mo:| zu:}](http://www.peter.in-berlin.de/projekte/selfcode/?code=ie%3A%25%20fl%3A(%20br%3A%3C%20va%3A)%20ls%3A%5B%20fo%3A%7C%20rl%3A(%20n4%3A(%20ss%3A)%20de%3A%3E%20js%3A%7C%20ch%3A%3F%20sh%3A(%20mo%3A%7C%20zu%3A%7D)
                                              Decoder    -    Infos
                    1. Moin H2O,

                      Ja, seitdem bin ich nur noch mein eigener Chef[1] ...

                      Also eine Ich-AG... *SCNR*

                      Ja, wobei die Bezeichnung etwas täuscht. Man ist ganz normal selbständig, bekommt aber den Zuschuß. Und warum sollte man das Geld verschenken? *g*

                      Auf Krampf eine Ich-AG zu gründen ist aber nicht wirklich empfehlenswert, man sollte schon einige Sachen beachten.

                      Viele Grüße

                      Jörg

          2. Hallo Jörg.

            Klappt alles prima, aber mir stellt sich gerade noch ein Problem.
            Lässt sich vielleicht noch einbauen, dass nur etwas in das dritte Feld geschrieben wird, wenn es leer ist?

            Meine Versuche eine IF-Abrage einzubauen scheiterten leider an Syntaxfehlern :(

            H2O

            --
            #*~!:     Download Opera
            Selfcode: [ie:% fl:( br:< va:) ls:[ fo:| rl:( n4:( ss:) de:> js:| ch:? sh:( mo:| zu:}](http://www.peter.in-berlin.de/projekte/selfcode/?code=ie%3A%25%20fl%3A(%20br%3A%3C%20va%3A)%20ls%3A%5B%20fo%3A%7C%20rl%3A(%20n4%3A(%20ss%3A)%20de%3A%3E%20js%3A%7C%20ch%3A%3F%20sh%3A(%20mo%3A%7C%20zu%3A%7D)
                                      Decoder    -    Infos
            1. Hi H2O,

              Klappt alles prima, aber mir stellt sich gerade noch ein Problem.
              Lässt sich vielleicht noch einbauen, dass nur etwas in das dritte Feld geschrieben wird, wenn es leer ist?

              Kein Problem, da gibt es viele Möglichkeiten. Eine ist:

              Sub Das_ist_der_Name()
              Dim lngZ As Long
              For lngZ = 2 To Cells(Rows.Count, 1).End(xlUp).Row
                  If Cells(lngZ, 3) = "" Then
                      Cells(lngZ, 3) = Right(Cells(lngZ, 1), Len(Cells(lngZ, 1)) - InStr(1, Cells(lngZ, 1), "@"))
                  End If
              Next
              End Sub

              Viele Grüße

              Jörg

              1. Hallo Jörg.

                Sub Das_ist_der_Name()
                Dim lngZ As Long
                For lngZ = 2 To Cells(Rows.Count, 1).End(xlUp).Row
                    If Cells(lngZ, 3) = "" Then
                        Cells(lngZ, 3) = Right(Cells(lngZ, 1), Len(Cells(lngZ, 1)) - InStr(1, Cells(lngZ, 1), "@"))
                    End If
                Next
                End Sub

                Vielen Dank.
                Jetzt sind meine schönen PHP-Skripte wirklich überflüssig... ;)

                H2O

                --
                #*~!:     Download Opera
                Selfcode: [ie:% fl:( br:< va:) ls:[ fo:| rl:( n4:( ss:) de:> js:| ch:? sh:( mo:| zu:}](http://www.peter.in-berlin.de/projekte/selfcode/?code=ie%3A%25%20fl%3A(%20br%3A%3C%20va%3A)%20ls%3A%5B%20fo%3A%7C%20rl%3A(%20n4%3A(%20ss%3A)%20de%3A%3E%20js%3A%7C%20ch%3A%3F%20sh%3A(%20mo%3A%7C%20zu%3A%7D)
                                          Decoder    -    Infos
  3. gudn tach!

    Habt ihr eine Idee wie ich das machen könnte?

    mit einem makro.

    in winword habe ich sowas frueher(!) manchmal gemacht. das wird aber, denke ich, noch immer funzen.

    1. makro aufnehmen
    2. einmal das ausfuehren, was du ganz oft machen moechtest: also domain kopieren, in die dritte spalte wechseln, domain einfuegen, cursor an den anfang der naechsten zeile setzen.
    3. makro bearbeiten

    der code sollte dann in vbs vorliegen und leicht so modifizierbar sein, dass er das macht, was du willst. wie man schleifen schreibt und sowas kann man leicht ueber die vbs-hilfe herausbekommen oder ueber google.

    4. makro ausfuehren

    prost
    seth

    1. Hi,

      mit einem makro.

      Ein Makro wird ihm in diesem Fall nicht viel helfen, da Makros weder Schleifen noch Variablen können ...

      1. einmal das ausfuehren, was du ganz oft machen moechtest: also domain kopieren, in die dritte spalte wechseln, domain einfuegen, cursor an den anfang der naechsten zeile setzen.

      Da ist das Problem: Ein Makro kann nicht erkennen, wo die Domian beginnt.

      der code sollte dann in vbs vorliegen und leicht so modifizierbar sein, dass er das macht, was du willst.

      Nee, nicht in VBS, sondern in VBA.

      Ebenfalls prost

      Jörg

      1. gudn tach Jörg!

        mit einem makro.

        Ein Makro wird ihm in diesem Fall nicht viel helfen, da Makros weder Schleifen noch Variablen können ...

        ich habe ja auch dazu geschrieben, dass das makro bearbeitet werden soll.
        wenn man ein makro bearbeitet, indem man z.b. schleifen einbaut, bleibt es trotzdem ein makro.

        der vorteil der von mir beschriebenen methode ist, dass man keine ahnung vom aufbau eines vba-scriptes haben muss, sondern bloss noch den inhalt der funktion (des sub) zu aendern hat.
        und wenn man irgendeine prozedurale programmiersprache (hier z.b. php) schon kennt, kann man sich selbst auch recht fix die befehls- und funktions-namen zusammensuchen, die man fuer seine zwecke braucht.

        1. einmal das ausfuehren, was du ganz oft machen moechtest: also domain kopieren, in die dritte spalte wechseln, domain einfuegen, cursor an den anfang der naechsten zeile setzen.

        Da ist das Problem: Ein Makro kann nicht erkennen, wo die Domian beginnt.

        das makro selbst noch nicht, aber der code liegt ja vor. und so wie man eruiert, wie man schleifen in vba schreibt, kann man auch schnell zu solchen konstrukten wie InStr() finden.

        und je nach e-mail-adressen muss man das noch nicht mal das:
        wenn alle e-mail-adressen in der tabelle hinter dem '@' genau einen punkt haben, also bloss aus tld, dem punkt und sld bestehen, dann genuegt es beim makro die tastenkombination
        end
        ctrl + shift + <- (cursortaste, nach links)
        ctrl + shift + <- (cursortaste, nach links)
        ctrl + shift + <- (cursortaste, nach links)
        ctrl + c
        zu druecken, um den gewuenschten teil in die zwischenablage zu kopieren.

        Nee, nicht in VBS, sondern in VBA.

        oops, ja, stimmt. so hiess das.

        prost
        seth

        1. gudn tach Jörg!

          Hi seth,

          der vorteil der von mir beschriebenen methode ist, dass man keine ahnung vom aufbau eines vba-scriptes haben muss, sondern bloss noch den inhalt der funktion (des sub) zu aendern hat.

          Ja, das stimmt schon. Es hat aber auch viele Nachteile. Ein gravierender Nachteil z. B. ist, daß man mit der Aufzeichnung auch Methoden wie Select oder Activate lernt, die man aber in den seltensten Fällen braucht. Das Ergebnis sieht man dann in diversen Foren, wo dann die Frage gestellt wird, wie man die Probleme durch die Anwendung dieser Methoden lösen kann.

          und wenn man irgendeine prozedurale programmiersprache (hier z.b. php) schon kennt, kann man sich selbst auch recht fix die befehls- und funktions-namen zusammensuchen, die man fuer seine zwecke braucht.

          Hinsichtlich der Logik schon, aber die Syntax ist halt doch ewas anders.

          und je nach e-mail-adressen muss man das noch nicht mal das:
          wenn alle e-mail-adressen in der tabelle hinter dem '@' genau einen punkt haben, also bloss aus tld, dem punkt und sld bestehen, dann genuegt es beim makro die tastenkombination
          end
          ctrl + shift + <- (cursortaste, nach links)
          ctrl + shift + <- (cursortaste, nach links)
          ctrl + shift + <- (cursortaste, nach links)
          ctrl + c
          zu druecken, um den gewuenschten teil in die zwischenablage zu kopieren.

          Hast Du das mal mit verschiedenen Adressen probiert? Etwas fehlt da noch. Abgesehen davon befindet sich dann im Code bestimmt sowas wie "ActiveCell". Das ist nicht gerade ein guter Stil, auch, wenn es bei geringen Datenmengen erstmal funktioniert.

          prost
          seth

          Und nun kommt meine Kritik: Das Bier, das ich trinke, ist in Deiner Datenbank gar nicht enthalten. Also nee ...

          Viele Grüße

          Jörg

          1. gudn tach Jörg!

            der vorteil der von mir beschriebenen methode ist, dass man keine ahnung vom aufbau eines vba-scriptes haben muss, sondern bloss noch den inhalt der funktion (des sub) zu aendern hat.

            Ja, das stimmt schon. Es hat aber auch viele Nachteile. Ein gravierender Nachteil z. B. ist, daß man mit der Aufzeichnung auch Methoden wie Select oder Activate lernt, die man aber in den seltensten Fällen braucht. Das Ergebnis sieht man dann in diversen Foren, wo dann die Frage gestellt wird, wie man die Probleme durch die Anwendung dieser Methoden lösen kann.

            ack

            wenn alle e-mail-adressen in der tabelle hinter dem '@' genau einen punkt haben, also bloss aus tld, dem punkt und sld bestehen, dann genuegt es beim makro die tastenkombination
            end
            ctrl + shift + <- (cursortaste, nach links)
            ctrl + shift + <- (cursortaste, nach links)
            ctrl + shift + <- (cursortaste, nach links)
            ctrl + c
            zu druecken, um den gewuenschten teil in die zwischenablage zu kopieren.

            Hast Du das mal mit verschiedenen Adressen probiert? Etwas fehlt da noch.

            nee, ich hab nicht mal mehr office. war mir zu teuer.
            aber was fehlt da noch?
            das war nur der teil zum markieren und kopieren der domain.
            danach geht's selbstverstaendlich noch weiter.

            Und nun kommt meine Kritik: Das Bier, das ich trinke, ist in Deiner Datenbank gar nicht enthalten. Also nee ...

            das ist eher kritik an dir selbst! naemlich, weil du es noch nicht fuer die bdb getestet hast. also, rasch zum kuehlschrank und dann zum online-test-formular... ;-)

            prost
            seth

            1. Hi Seth,

              Voraussetzung, man befindet sich in der Zelle:

              end

              An das Ende des Zellinhaltes gehen.

              ctrl + shift + <- (cursortaste, nach links)
              ctrl + shift + <- (cursortaste, nach links)
              ctrl + shift + <- (cursortaste, nach links)

              Da hat es bei meinem Test aufgehört - ich habe die Tastenkombination nur _einmal_ gedrückt, dann war der Cursor am Anfang des Zellinhaltes.

              Nun fehlt noch das Markieren des relevanten Teils.

              ctrl + c

              Das ist klar.

              das war nur der teil zum markieren und kopieren der domain.
              danach geht's selbstverstaendlich noch weiter.

              Ja, das ist auch klar, aber es wurde nix markiert ...

              Das meine ich - die Arbeit in der aktiven Zelle ist nicht immer unproblematisch. Makros machen das so, besser ist es aber, mit dem String (in diesem Fall) zu arbeiten.

              Und nun kommt meine Kritik: Das Bier, das ich trinke, ist in Deiner Datenbank gar nicht enthalten. Also nee ...

              das ist eher kritik an dir selbst! naemlich, weil du es noch nicht fuer die bdb getestet hast. also, rasch zum kuehlschrank und dann zum online-test-formular... ;-)

              OK. Also: Marke: Nordgold. Die meisten Biertrinker würden davon bestimmt abraten, aber mir schmeckt es. Dafür kann ich an Oettinger nicht ran ...
              Das Schlimme ist, daß wir sehr oft zu Nichtbiertrinkern müssen, um da Geburtstag zu feiern. Die kaufen dann immer das Oettinger, weil es ja so preiswert ist ...

              Viele Grüße

              Jörg

              1. gudn tach Jörg!

                Voraussetzung, man befindet sich in der Zelle:

                selbstverstaendlich. (voraussetzung ist auch, dass die tastatur funktioniert...)

                end
                An das Ende des Zellinhaltes gehen.

                macht das nicht end?

                ctrl + shift + <- (cursortaste, nach links)
                ctrl + shift + <- (cursortaste, nach links)
                ctrl + shift + <- (cursortaste, nach links)
                Da hat es bei meinem Test aufgehört - ich habe die Tastenkombination nur _einmal_ gedrückt, dann war der Cursor am Anfang des Zellinhaltes.

                huch. das kann ich irgendwie kaum glauben.
                mit ctrl + <- springt man doch fuer gewoehnlich zum anfang des letzten wortes. diese wortanfaenge sind zwar oft von software zu software verschieden (und bei guten editoren kann man verschiedene toleranzen einstellen), aber ich dachte, dass sie bei ms-office einheitlich waeren. ich habe hier nur das oberbloede word-pad, aber da wird bei dreimaligem ctrl + shift + <- genau das, was ich dachte.

                Nun fehlt noch das Markieren des relevanten Teils.

                wenn man gleichzeitig noch shift drueckt, sollte alles von der letzten cursor-position bis dorthin markiert werden. deswegen ja shift + ctrl + <-

                ctrl + c
                Das ist klar.

                ;-)

                aber es wurde nix markiert ...

                ok, da ich hier kein excel habe um das nachvollziehen zu koennen, muss ich dir das wohl glauben (und mag excel jetzt noch weniger als vorher).

                besser ist es aber, mit dem String (in diesem Fall) zu arbeiten.

                klar, aber als anfaenger ist so ein zusammengeklicktes ding schneller gebastelt und erfuellt auch seinen zweck.
                das makro wuerde ja nur einmal eingesetzt werden und danach koennte man es getrost loeschen.
                bei anspruchsvolleren aufgaben oder problemloesungen, die oefters eingesetzt werden sollen, sollte man sich imho dagegen mit der programmiersprache genauer befassen und gescheiten code schreiben, ja.

                Und nun kommt meine Kritik: Das Bier, das ich trinke, ist in Deiner Datenbank gar nicht enthalten. Also nee ...

                das ist eher kritik an dir selbst! naemlich, weil du es noch nicht fuer die bdb getestet hast. also, rasch zum kuehlschrank und dann zum online-test-formular... ;-)

                OK. Also: Marke: Nordgold.

                hmm, es ist aber bis jetzt noch kein test vom nordgold eingangen.

                Das Schlimme ist, daß wir sehr oft zu Nichtbiertrinkern müssen, um da Geburtstag zu feiern. Die kaufen dann immer das Oettinger, weil es ja so preiswert ist ...

                wenn euch das oettinger nicht schmeckt, dann bringt doch einfach selbst was (z.b. nordgold) mit. falls die gastgeber bier nicht da haben wollten, waere das unfreundlich, aber da sie ja oettinger kaufen, ist das afais nicht der fall. sie kaufen das oettinger bloss, weil sie nicht wissen, dass euch das nicht schmeckt, oder?

                prost
                seth

                1. Hi seth,

                  end
                  An das Ende des Zellinhaltes gehen.

                  macht das nicht end?

                  Ja, das meinte ich ja ...

                  ctrl + shift + <- (cursortaste, nach links)
                  ctrl + shift + <- (cursortaste, nach links)
                  ctrl + shift + <- (cursortaste, nach links)
                  Da hat es bei meinem Test aufgehört - ich habe die Tastenkombination nur _einmal_ gedrückt, dann war der Cursor am Anfang des Zellinhaltes.

                  huch. das kann ich irgendwie kaum glauben.
                  mit ctrl + <- springt man doch fuer gewoehnlich zum anfang des letzten wortes.

                  Das dachte ich auch, habe es aber trotzdem mal probiert - der Cursor landete immer am Anfang des Zellinhaltes.

                  ok, da ich hier kein excel habe um das nachvollziehen zu koennen, muss ich dir das wohl glauben (und mag excel jetzt noch weniger als vorher).

                  Vielleicht ist das ja auch bei den verschiedenen Officeversionen unterschiedlich, obwohl es anormal wäre ...

                  besser ist es aber, mit dem String (in diesem Fall) zu arbeiten.

                  klar, aber als anfaenger ist so ein zusammengeklicktes ding schneller gebastelt und erfuellt auch seinen zweck.
                  das makro wuerde ja nur einmal eingesetzt werden und danach koennte man es getrost loeschen.

                  Volle Zustimmung.

                  Die Erfahrung habe ich jetzt auch gerade gemacht. Mir fehlte eine Funktion, daß ich mehrere Zeilen PHP-Code schnell auskommentieren kann. Dann habe ich mir mal PSPad heruntergeladen - da kann man es per Makro ganz einfach einstellen. ;-)

                  bei anspruchsvolleren aufgaben oder problemloesungen, die oefters eingesetzt werden sollen, sollte man sich imho dagegen mit der programmiersprache genauer befassen und gescheiten code schreiben, ja.

                  Volle Zustimmung.

                  OK. Also: Marke: Nordgold.

                  hmm, es ist aber bis jetzt noch kein test vom nordgold eingangen.

                  Also dann - jetzt mache ich Feierabend, trinke ein schönes Nordgold und trage es morgen mal ein.

                  wenn euch das oettinger nicht schmeckt, dann bringt doch einfach selbst was (z.b. nordgold) mit. falls die gastgeber bier nicht da haben wollten, waere das unfreundlich, aber da sie ja oettinger kaufen, ist das afais nicht der fall. sie kaufen das oettinger bloss, weil sie nicht wissen, dass euch das nicht schmeckt, oder?

                  Nee, das haben wir (ich bin da nicht der einzige, dem das nicht schmeckt) schon öfter gesagt. Aber die Gastgeber wollen wahrscheinlich sparen.

                  prost

                  Jörg

  4. hallo h2o

    Die erste Spalte enthält immer eine Email-Adresse und die 3. Zeile ist immer leer.
    Nun will ich die Domain aus der ersten Spalte in die 3. Zeile eintragen.

    excel bietet auch funktion zur verarbeitung von zeichenkette.
    SUCHEN liefert die position einer teilzeichenkette (z.b. eines klammeraffen) zurück.
    TEIL leifert eine teilzeichenkette bestimmter länge ab angegebener position zurück.

    du müsstest also folgende formel in die 3.spalte schreiben, nach unten kopieren und schon hast du deinen domains.

    =TEIL(A1;(SUCHEN("@";A1))+1;1000)

    hinweise:
    +1 steht da damit der klammeraffe nicht in der domain erscheint.
    1000 geht davon aus, dass keine domain mehr als 1000 zeichen lang ist.

    l.g. karl :-)´

    1. Hallo karl.

      excel bietet auch funktion zur verarbeitung von zeichenkette.
      SUCHEN liefert die position einer teilzeichenkette (z.b. eines klammeraffen) zurück.
      TEIL leifert eine teilzeichenkette bestimmter länge ab angegebener position zurück.

      Crashkurs in VBA? ;)

      du müsstest also folgende formel in die 3.spalte schreiben, nach unten kopieren und schon hast du deinen domains.

      =TEIL(A1;(SUCHEN("@";A1))+1;1000)

      hinweise:
      +1 steht da damit der klammeraffe nicht in der domain erscheint.
      1000 geht davon aus, dass keine domain mehr als 1000 zeichen lang ist.

      Supi!
      Da die Daten erst in Zeile 2 beginnen musste ich das A1 noch in A2 umändern (soviel kann ich *g*) und dann hat's prima geklappt ;)
      Klasse, dann muss ich gar kein extra Programm dafür schreiben *freu*

      Vielen Dank,
      H2O

      --
      #*~!:     Download Opera
      Selfcode: [ie:% fl:( br:< va:) ls:[ fo:| rl:( n4:( ss:) de:> js:| ch:? sh:( mo:| zu:}](http://www.peter.in-berlin.de/projekte/selfcode/?code=ie%3A%25%20fl%3A(%20br%3A%3C%20va%3A)%20ls%3A%5B%20fo%3A%7C%20rl%3A(%20n4%3A(%20ss%3A)%20de%3A%3E%20js%3A%7C%20ch%3A%3F%20sh%3A(%20mo%3A%7C%20zu%3A%7D)
                                Decoder    -    Infos
      1. Hi H2O,

        excel bietet auch funktion zur verarbeitung von zeichenkette.
        SUCHEN liefert die position einer teilzeichenkette (z.b. eines klammeraffen) zurück.
        TEIL leifert eine teilzeichenkette bestimmter länge ab angegebener position zurück.

        Crashkurs in VBA? ;)

        Nee, das hat mit VBA erstmal nix zu tun, das sind integrierte Funktionen. Die kann man aber auch in VBA nutzen. ;-)

        Viele Grüße

        Jörg

        1. Hallo Jörg.

          Nee, das hat mit VBA erstmal nix zu tun, das sind integrierte Funktionen. Die kann man aber auch in VBA nutzen. ;-)

          Oki. Dann also:
          "Crashkurs in integrierten Funktionen" *gg*

          Man liest sich, H2O

          --
          #*~!:     Download Opera
          Selfcode: [ie:% fl:( br:< va:) ls:[ fo:| rl:( n4:( ss:) de:> js:| ch:? sh:( mo:| zu:}](http://www.peter.in-berlin.de/projekte/selfcode/?code=ie%3A%25%20fl%3A(%20br%3A%3C%20va%3A)%20ls%3A%5B%20fo%3A%7C%20rl%3A(%20n4%3A(%20ss%3A)%20de%3A%3E%20js%3A%7C%20ch%3A%3F%20sh%3A(%20mo%3A%7C%20zu%3A%7D)
                                    Decoder    -    Infos
          1. Hi H2O,

            Nee, das hat mit VBA erstmal nix zu tun, das sind integrierte Funktionen. Die kann man aber auch in VBA nutzen. ;-)

            Oki. Dann also:
            "Crashkurs in integrierten Funktionen" *gg*

            Ja. aber die benutzerdefinierten Funktionen (UDF) sind dann schon wieder VBA. ;-)

            Viele Grüße

            Jörg

            1. Hallo Jörg.

              Ja. aber die benutzerdefinierten Funktionen (UDF) sind dann schon wieder VBA. ;-)

              OK... Ich merke gerade, das Thema überschreitet meinen (in Excel recht kleinen) Horizont... *SCNR*

              H2O

              --
              #*~!:     Download Opera
              Selfcode: [ie:% fl:( br:< va:) ls:[ fo:| rl:( n4:( ss:) de:> js:| ch:? sh:( mo:| zu:}](http://www.peter.in-berlin.de/projekte/selfcode/?code=ie%3A%25%20fl%3A(%20br%3A%3C%20va%3A)%20ls%3A%5B%20fo%3A%7C%20rl%3A(%20n4%3A(%20ss%3A)%20de%3A%3E%20js%3A%7C%20ch%3A%3F%20sh%3A(%20mo%3A%7C%20zu%3A%7D)
                                        Decoder    -    Infos
        2. Moin!

          Nee, das hat mit VBA erstmal nix zu tun, das sind integrierte Funktionen. Die kann man aber auch in VBA nutzen. ;-)

          Jepp. Man muss nur rausfinden, wie die deutschsprachig benannten Funktionen in VBA heissen. Da haben die nämlichen die englischen Namen und die Übersetzung ist teils alles andere als "wörtlich".

          Tipp hierzu: Aufzeichnen eines Makros, Funktionsname auslesen, notieren, löschen...

          MFFG (Mit freundlich- friedfertigem Grinsen)

          fastix®

          --
          Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
          1. Moin!

            Ebenfalls,

            Jepp. Man muss nur rausfinden, wie die deutschsprachig benannten Funktionen in VBA heissen. Da haben die nämlichen die englischen Namen und die Übersetzung ist teils alles andere als "wörtlich".

            Ja, wenn man mit Application.Worksheetfunction arbeitet.

            Tipp hierzu: Aufzeichnen eines Makros, Funktionsname auslesen, notieren, löschen...

            Oder tricksen: Mit FormulaLocal die deutsche Funktion als Formel eintragen lassen, das Ergebnis auslesen, weiterverarbeiten und die Formel wieder löschen. ;-)
            Ob das elegant ist, ist die andere Seite ...

            Viele Grüße

            Jörg

  5. Hi H2O,

    Die erste Spalte enthält immer eine Email-Adresse und die 3. Zeile ist immer leer.
    Nun will ich die Domain aus der ersten Spalte in die 3. Zeile eintragen.

    Du meinst 3. Spalte?

    Dazu ist keinerlei Visual Basic oder ein anderes Programm nötig, EXCEL-Funktionen reichen völlig aus:

    Du suchst das @ mit =SUCHEN("@", A1).

    Das Zeichen danach (der Beginn der Domaine) ist also an Position =SUCHEN("@", A1)+1.

    Du willst den Teil der Zeichenkette ab dem Zeichen nach dem @ bis zum Ende: =TEIL(A1, SUCHEN("@", A1), LÄNGE(A1).

    Das schreibst du in Zelle C1, dann ziehst du das mit der Maus bis zur letzten belegten Zeile runter. In C2 steht dann: =TEIL(A2, SUCHEN("@", A2), LÄNGE(A2).

    Fertig.

    Live long and prosper,
    Gunnar

    --
    „Weisheit ist nicht das Ergebnis der Schulbildung, sondern des lebenslangen Versuchs, sie zu erwerben.“ (Albert Einstein)
    1. Na, das kommt davon, wenn man zwischendurch kurz offline ist: Karl war einen Augenschlag schneller.

      Dafür darf meine Domain aber auch länger als 1000 Zeichen sein. ;-)

      Live long and prosper,
      Gunnar

      --
      „Weisheit ist nicht das Ergebnis der Schulbildung, sondern des lebenslangen Versuchs, sie zu erwerben.“ (Albert Einstein)
      1. Hi,

        Dafür darf meine Domain aber auch länger als 1000 Zeichen sein. ;-)

        und ich dachte schon, ich hätte eine lange Mailadresse:

        joerglorenz@ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJK.COM

        ;-)

        Viele Grüße

        Jörg