.: News - Downloads - Hilfe Forum - Windows FAQ - Kontakt - Impressum / Datenschutz :.
  Navigation

    Startseite
    Newscenter
    Downloads
    Screenshots
    Forum
    Online Shop
    Spielhalle
    Bilder Upload
    Mitglieder Map

  FAQ Datenbank

    FAQ, Tipps, Hilfe
    CMD (DOS) Befehle
    Windows 2000
    Windows Vista
    Windows XP
    Server 2003
    Microsoft Office
    Security Bulletins
    Service Packs

  Update Packs

    Windows 2000
    Windows XP
    Server 2003

  Service

    Windows XP Slipper
    Slipstream CD
    MS Security Tools

  RSS Feed  

    Alle News
    Treiber News
    Software News
    Hardware News
    Microsoft News
    Alle Windows FAQ
    Windows 2000 FAQ
    Windows XP FAQ
    Windows Vista FAQ
    Update Packs
    Screenshots
    Downloads

  Surf-Tipp

    Kostenlose Online-Kurse zu MS Office, OpenOffice und Internet-Technik

Keine Kompromisse im Kampf gegen Kinderpornografie


Archiv Screenshots
Archiv FAQ
Archiv Community News
Archiv Spiele News
Archiv Konsolen News
Archiv Allgemeine News
Archiv Microsoft News
Archiv Hardware News
Archiv Treiber News
Archiv Software News
Zurück   Winhelpline Forum > Sonstige Software > MS Office
Passwort vergessen?

MS Office Alles zum Thema Word, Excel, Access, PowerPoint, Outlook

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 24.07.2008, 13:02   #1
mystique
Freak
 
Benutzerbild von mystique
 
Registriert seit: 27.01.2002
Alter: 28
Beiträge: 172



Standard Excel Makro (siehe beigefügte Excel Tabelle)

Hallo zusammen,

ich habe eine komplizierte Aufgabe bekommen und brauche dazu dringend Hilfe von einem Excel-Spezialisten.

In Sheet1 der beigefügten Exceltabelle (File1 = Office2007, das andere File habe ich konvertiert um es in älteren Excel Versionen öffnen zu können( befinden sich in Spalte A Berichte mit einer Vorgangsnummer. Diese Vorgangsnummer möchte ich in Sheet2 Spalte A suchen. Der dazugehörige Name (Sheet2 Spalte B) soll kopiert werden und in Sheet1 Spalte B bei der dazugehörigen Vorgangsnummer eingefügt werden.

Ich hoffe ich habe es verständlich erklärt. Da ich über 50000 Einträge in der Exceltabelle habe brauche ich dafür unbedingt ein Makro.

Ich hoffe das mir da jemand weiterhelfen kann.

Viele Grüße

Angehängte Dateien
Dateityp: rar File.rar (208,8 KB, 2x aufgerufen)
Dateityp: rar File(97-2003).rar (161,2 KB, 3x aufgerufen)

mystique's Signatur MFG
mystique

Geändert von mystique (24.07.2008 um 14:03 Uhr).
mystique ist offline   Mit Zitat antworten
Alt 24.07.2008, 14:00   #2
AMI
Sponsor
 
Benutzerbild von AMI
 
Registriert seit: 28.01.2002
Ort: 78315 Radolfzell am Bodensee
Alter: 42
Beiträge: 1.887

Track Mod Champion!
Standard

Hallo Mystique,

ich bin zwar ziemlich fit in Excel, abeer aus Deinem File werde ich nicht schlau.

Du schreibst
Zitat:
Zitat von mystique
in Spalte A Berichte mit einer Vorgangsnummer
. Die Zellinhalte sind aber VÖLLIG unterschiedlich. Woher soll man also per Makro herausfinden, welches Teil des Zelltextes die Vorgangsnummer ist?

Welche Kriterien gibt es für Vorgangsnummer?

Was bedeutet überhaupt der Inhalt der Spalte 1 auf Sheet 1?

Wenn Du das EINDEUTIG erklären kannst, kann Dir geholfen werden

Grüßle

AMI

P.S. und es wäre hilfreich, wenn Du schreiben würdest, dass es sich um Excel 2007 handelt, schließlich hat nicht jeder den Fileconverter geinstet


AMI's Signatur Externer Link Sani Sanelli - der kleine Helfer
Projekt für Kinder zum Umgang mit Notfallsituationen

Geändert von AMI (24.07.2008 um 14:02 Uhr).
AMI ist offline   Mit Zitat antworten
Alt 24.07.2008, 14:18   #3
mystique
Freak
 
Benutzerbild von mystique
 
Registriert seit: 27.01.2002
Alter: 28
Beiträge: 172

  Themenstarter


Standard

Hallo AMI,

danke für deinen Hinweis. Ich versuche es nochmal genauer zu erklären. Meine Excelliste hat ungefähr 50000 Zeilen die ungefähr so aussehen wie sie in der beigefügten Excel-Tabelle zu sehen sind. In Sheet 1 -Spalte A sind nur die Zahlen wichtig, d.h. nur die Zahlen, die immer 9-stellig sind (manchmal auch einen Buchstaben enthalten können) sollen aus Spalte A ausgelesen werden. Dieser ausgelesene Inhalt von Spalte A in Sheet1 soll dann in Sheet2 -Spalte A gesucht werden. Bei Übereinstimmung soll der Text der in Sheet2 Spalte B steht in Sheet1 -Spalte B angezeigt werden. Der Text soll aber nur da angezeigt werden, wo auch die Vorgangsnummern übereinstimmen. Im Moment steht in dem Excelfile in Sheet1 Spalte A ja noch Marketing, Vertrieb usw. . Das steht ja noch nicht drin. Das soll das Makro erledigen.

Ich habe jetzt 2 files hochgeladen. Das erste file ist mit Excel2007 erstellt. Das andere file habe ich für alle anderen Excelversionen konvertiert.

Hoffentlich konnte ich es hjetzt etwas verständlicher erklären.

Viele Grüße


mystique's Signatur MFG
mystique
mystique ist offline   Mit Zitat antworten
Alt 24.07.2008, 14:23   #4
AMI
Sponsor
 
Benutzerbild von AMI
 
Registriert seit: 28.01.2002
Ort: 78315 Radolfzell am Bodensee
Alter: 42
Beiträge: 1.887

Track Mod Champion!
Standard

Hallo Mystique,

beginnen die 9-Stelligen Zahlen IMMER mit "--" ?

Ist es alternativ so, dass nach der 9-stellgen Kombination IMMER ein Leerzeichen mit einem weiteren TEXT erscheint?

Grüßle

AMI


AMI's Signatur Externer Link Sani Sanelli - der kleine Helfer
Projekt für Kinder zum Umgang mit Notfallsituationen
AMI ist offline   Mit Zitat antworten
Alt 24.07.2008, 14:46   #5
mystique
Freak
 
Benutzerbild von mystique
 
Registriert seit: 27.01.2002
Alter: 28
Beiträge: 172

  Themenstarter


Standard

Stimmt genau, die 9-stelligen Zahlen beginnen immer mit --. Davor befinden sich immer diese Zeichen: " | "

In der Mitte können mal 2 oder 3 Buchstaben vorkommen.

Nach der 9-stelligen Nummer kommt immer ein weiterer Text.

Viele Grüße


mystique's Signatur MFG
mystique
mystique ist offline   Mit Zitat antworten
Alt 24.07.2008, 15:17   #6
AMI
Sponsor
 
Benutzerbild von AMI
 
Registriert seit: 28.01.2002
Ort: 78315 Radolfzell am Bodensee
Alter: 42
Beiträge: 1.887

Track Mod Champion!
Standard

here we are

Code:
Sub Erklaeren() Dim lwSheet1 As Worksheet Dim lwSheet2 As Worksheet Dim lsErklaerung As String Dim lsSuchString As String Dim liLineCount1 As Double Dim liLineCount2 As Double Dim liStringCount As Integer Dim liStringLenght As Integer Set lwSheet1 = ActiveWorkbook.Worksheets("Sheet1") Set lwSheet2 = ActiveWorkbook.Worksheets("Sheet2") For liLineCount1 = 5 To lwSheet1.UsedRange.Rows.Count lsSuchString = lwSheet1.Range("A" & liLineCount1).Value liStringLenght = Len(lsSuchString) For liStringCount = 1 To liStringLenght If Left(lsSuchString, 1) = "-" Or lsSuchString = "" Then Exit For Else lsSuchString = Right(lsSuchString, Len(lsSuchString) - 1) End If Next liStringCount If lsSuchString = "" Then GoTo naechster 'String genügt nicht den Anforderungen (enthält kein "-") End If lsSuchString = Right(lsSuchString, Len(lsSuchString) - 2) 'die führenden zwei "-" wegschneiden lsSuchString = Left(lsSuchString, 9) 'jetzt haben wir den Suchbegriff For liLineCount2 = 1 To lwSheet2.UsedRange.Rows.Count 'suchen If lsSuchString = lwSheet2.Range("A" & liLineCount2).Value Then 'gefunden lwSheet1.Range("B" & liLineCount1).Value = lwSheet2.Range("B" & liLineCount2).Value 'eintragen Exit For 'nächste Zeile aus Sheet1 End If Next liLineCount2 naechster: Next liLineCount1 End Sub

Erstmal auf Kopie testen !

Grüßle

AMI


AMI's Signatur Externer Link Sani Sanelli - der kleine Helfer
Projekt für Kinder zum Umgang mit Notfallsituationen
AMI ist offline   Mit Zitat antworten
Alt 24.07.2008, 15:59   #7
mystique
Freak
 
Benutzerbild von mystique
 
Registriert seit: 27.01.2002
Alter: 28
Beiträge: 172

  Themenstarter


Standard

Hallo AMI,

erstmal herzlichen Dank für deine Mühe die du dir gemacht hast. Ich habe das Skript mal an 250 Beispieldaten getestet. Das Skript funktioniert bei all den Nummern, die ein buchstabe enthalten. Die Nummern, die nur aus Buchstaben bestehen, erfasst das Skript nicht.

Im Klartest:
Alle Vorgangsnummern die ungefähr so aussehen 1234B5678 erfasst das Skript (ein Buchstabe in der Nummer)
ALle Vorgangsnummern, die nur aus Zahlen bestehen z. B. 123456789, erfasst das Skript nicht.
Die Vorgangsnummern, die mit einem Buchstaben beginnen erfasst das Skript auch nicht.

Hast du dafür noch eine Lösung?

Du hast mir aber jetzt schon sehr geholfen. Herzlichen Dank schonmal dafür.

Viele Grüße


mystique's Signatur MFG
mystique
mystique ist offline   Mit Zitat antworten
Alt 24.07.2008, 19:45   #8
AMI
Sponsor
 
Benutzerbild von AMI
 
Registriert seit: 28.01.2002
Ort: 78315 Radolfzell am Bodensee
Alter: 42
Beiträge: 1.887

Track Mod Champion!
Standard

Hallo mystique,

das liegt vermutlich daran, dass 1324R4567 ein STRING ist,
123456789 aber eine Zahl.

Das Ganze hängt jetzt davon ab, ob Du in Deinem Sheet 2 die "Suchbegriffe" als Strings oder als Zahlenwerte vorliegen hast.

Auf Grund Deines Beispiels gehe ich davon aus, dass es Strings (also Texte) sind.

Das Makro habe ich angepasst ... bitte nochmal testen.

Code:
Sub Erklaeren() Dim lwSheet1 As Worksheet Dim lwSheet2 As Worksheet Dim lsErklaerung As String Dim lsSuchString As String Dim liLineCount1 As Double Dim liLineCount2 As Double Dim liStringCount As Integer Dim liStringLenght As Integer Set lwSheet1 = ActiveWorkbook.Worksheets("Sheet1") Set lwSheet2 = ActiveWorkbook.Worksheets("Sheet2") For liLineCount1 = 5 To lwSheet1.UsedRange.Rows.Count lsSuchString = lwSheet1.Range("A" & liLineCount1).Value liStringLenght = Len(lsSuchString) For liStringCount = 1 To liStringLenght If Left(lsSuchString, 1) = "-" Or lsSuchString = "" Then Exit For Else lsSuchString = Right(lsSuchString, Len(lsSuchString) - 1) End If Next liStringCount If lsSuchString = "" Then GoTo naechster 'String genügt nicht den Anforderungen (enthält kein "-") End If lsSuchString = Right(lsSuchString, Len(lsSuchString) - 2) 'die führenden zwei "-" wegschneiden lsSuchString = CStr(Left(lsSuchString, 9)) 'jetzt haben wir den Suchbegriff auf jeden Fall als String vorliegen For liLineCount2 = 1 To lwSheet2.UsedRange.Rows.Count 'suchen If lsSuchString = lwSheet2.Range("A" & liLineCount2).Value Then 'gefunden lwSheet1.Range("B" & liLineCount1).Value = lwSheet2.Range("B" & liLineCount2).Value 'eintragen Exit For 'nächste Zeile aus Sheet1 End If Next liLineCount2 naechster: Next liLineCount1 End Sub

Grüßle

AMI


AMI's Signatur Externer Link Sani Sanelli - der kleine Helfer
Projekt für Kinder zum Umgang mit Notfallsituationen
AMI ist offline   Mit Zitat antworten
Alt 25.07.2008, 10:04   #9
mystique
Freak
 
Benutzerbild von mystique
 
Registriert seit: 27.01.2002
Alter: 28
Beiträge: 172

  Themenstarter


Standard

Hallo AMI,

vielen Dank für deine großartige Hilfe. Ich habe noch ein paar Änderungen vorgenommen und jetzt ist das Skript durchgelaufen und hat alle 50000 Zeilen bearbeitet.

Jetzt habe ich nur noch ein kleines Problem. Ich muß die Zeilen ohne brauchbare Werte löschen. In der beigefügten Exceltabelle habe ich die Zellen markiert, die ich meine.
Es kann z.B. vorkommen, daß ich in Spalte A unbrauchbare Daten drinstehen habe, wie z. B. | | | .
Wenn nur diese Striche vorkommen ohne Text, d. h. | | |, dann soll die komplette Zeile gelöscht werden. Wenn | | |ABCDEFG in der Zelle steht, darf die Zeile nicht gelöscht werden.
Den Filter von Excel kann ich hier nicht verwenden, da es vorkommen kann, daß es auch mal fünf Striche (| | | | |) sein können oder 7 Striche und ein Text dahinter.

Es dürfen also nur die Zeilen gelöscht werden, die nur Striche enthalten ohne irgendeinen Text.

Hast du dazu noch eine Lösung?

Screenshot
Externer Link

Excelfile ist im Anhang.

Viele viele Grüße

Angehängte Dateien
Dateityp: zip Excel2003,2007.zip (10,0 KB, 2x aufgerufen)

mystique's Signatur MFG
mystique

Geändert von mystique (25.07.2008 um 10:08 Uhr).
mystique ist offline   Mit Zitat antworten
Alt 25.07.2008, 10:14   #10
AMI
Sponsor
 
Benutzerbild von AMI
 
Registriert seit: 28.01.2002
Ort: 78315 Radolfzell am Bodensee
Alter: 42
Beiträge: 1.887

Track Mod Champion!
Standard

Hallo Mystique,

in "einem Aufwasch", oder willst Du dafür ein extra Makro?

Falls "ein Aufwasch", hänge bitte die Excel-Datei mit dem von Dir jetzt angepassten Makro an.

Grüßle

AMI


AMI's Signatur Externer Link Sani Sanelli - der kleine Helfer
Projekt für Kinder zum Umgang mit Notfallsituationen
AMI ist offline   Mit Zitat antworten
Antwort



Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge anzufügen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Gehe zu

Ähnliche Themen
Thema Erstellt von Forum Antworten Letzter Beitrag
Excel Makro? Azreal` MS Office 2 10.02.2005 11:39
Excel Pivot Tabelle formatieren Vega MS Office 0 07.10.2002 15:37
User aus Excel-Tabelle anlegen Mazze01 Allgemein Windows 2000 0 28.06.2002 18:02
Makro für Excel Harti MS Office 0 17.01.2002 12:16
Excel hat keine Tabelle reipu Software Windows 2000 2 28.07.2001 09:38


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:50 Uhr.


Powered by vBulletin Version 3.5.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 2.4.0