Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

VBA - 5stellige Ziffern in Excel-Spalte suchen und Inhalt kopieren

Mitglied: sejosc

sejosc (Level 1) - Jetzt verbinden

24.08.2006, aktualisiert 28.08.2006, 6988 Aufrufe, 5 Kommentare

Hallo zusammen,

ich habe hier ein kleines Problem mit einer Excel-Tabelle. Aus einer txt-Datei werden Adressdaten in die Tabelle importiert. Allerdings stehen dabei alle Daten in einer Zelle (Bsp.: Achim Müller Mühlstraße 3 98765 Teststadt).

Nun muss mittels eines Makro der Teil ab Beginn der Postleitzahl in eine Zeile darunter kopiert werden. Diese Zeilen habe ich schon mittels eines anderen Makro einfügen lassen. Es geht also nur noch ums Kopieren der Inhalte.

Ich hoffe, dass ich mich möglichst verständlich ausgedrückt habe.

Vielen Dank im voraus,

Sebastian Schäfer


PS.: Kann mir jemand einen Tipp geben (ich habe noch nie mit VBA gearbeitet), wie ich mehrere Makros, die ich in Excel erstellt habe, nacheinander automatisch ablaufen lassen kann? Ich möchte sie nicht immer manuell aufrufen müssen.
Mitglied: Stefan764
24.08.2006 um 17:46 Uhr
Würde ich so machen :

01.
Public Sub Test()
02.
 
03.
Dim a As Long
04.
Dim b As Integer
05.
Dim c As String
06.
 
07.
a = 1
08.
While Tabelle1.Cells(a, 1) <> ""
09.
    c = Tabelle1.Cells(a, 1)
10.
    For b = 1 To Len(c) - 4
11.
        If Asc(Mid$(c, b, 1)) >= Asc("0") And _
12.
           Asc(Mid$(c, b, 1)) <= Asc("9") And _
13.
           Asc(Mid$(c, b + 1, 1)) >= Asc("0") And _
14.
           Asc(Mid$(c, b + 1, 1)) <= Asc("9") And _
15.
           Asc(Mid$(c, b + 2, 1)) >= Asc("0") And _
16.
           Asc(Mid$(c, b + 2, 1)) <= Asc("9") And _
17.
           Asc(Mid$(c, b + 3, 1)) >= Asc("0") And _
18.
           Asc(Mid$(c, b + 3, 1)) <= Asc("9") And _
19.
           Asc(Mid$(c, b + 4, 1)) >= Asc("0") And _
20.
           Asc(Mid$(c, b + 4, 1)) <= Asc("9") _
21.
        Then
22.
           Tabelle1.Cells(a + 1, 1) = Mid$(c, b, 5)
23.
        End If
24.
    Next
25.
a = a + 2
26.
Wend
27.
 
28.
End Sub
das Prog. kopiert die letzte 5-Stellige Zahl aus der ersten Spalte eine Zeile tiefer.
Bitte warten ..
Mitglied: sejosc
24.08.2006 um 23:46 Uhr
Hallo und danke für die schnelle Antwort!

Leider ist es so, dass ich mit dem Vorschlag nicht so viel anfangen kann, da ja zusätzlich zur Postleitzahl auch der Text dahinter (Ortsname) eine Zeile tiefer kopiert werden muss. Ich habe bereits ein Skript gefunden, das mir die Postleitzahlen sucht und dann in einer MessageBox anzeigt. Könnte man nicht auf diesem Skript aufbauen und sozusagen folgendes implementieren:

BEGINN
WENN 5stellige Zahl gefunden
DANN gehe zu Beginn der 5stelligen Zahl
MARKIERE den Inhalt vom Beginn dieser Zahl bis zum Ende der Zeile
SCHNEIDE DEN INHALT AUS
KOPIERE den Inhalt in die Zeile darunter
SPRINGE in die nächste Zeile
WIEDERHOLE diesen Vorgang, bis kein Inhalt mehr in den Zellen vorhanden ist
ENDE

Das momentane Skript, das die PLZ sucht, lautet wie folgt:

01.
Sub plzsuche()
02.
For Each rng In Range("C:C")
03.
  If rng Like "*#####*" Then
04.
    For n = 1 To Len(rng)
05.
      If IsNumeric(Mid(rng, n, 1)) Then
06.
        If IsNumeric(Mid(rng, n, 5)) Then
07.
          strNumber = Mid(rng, n, 5)
08.
          MsgBox strNumber
09.
          Exit For
10.
        End If
11.
      End If
12.
    Next
13.
  End If
14.
Next
15.
End Sub
Ich hoffe, anhand dieser Angaben lässt sich eine Lösung finden. Wäre wirklich super!

Vielen Dank und Gruß,

Sebastian Schäfer
Bitte warten ..
Mitglied: Stefan764
25.08.2006 um 13:03 Uhr
Hab ich deine Frage nicht genau genug gelesen, sorry.

Man kann mein Skript so ändern, daß es alle Zeichen ab der PLZ kopiert.

Hab ich auch noch ein bischen vereinfacht : IsNumeric kannte ich noch nicht...

01.
Public Sub Test()
02.
 
03.
Dim a As Long
04.
Dim b As Integer
05.
Dim c As String
06.
 
07.
a = 1
08.
While Tabelle1.Cells(a, 1) <> ""
09.
    c = Tabelle1.Cells(a, 1)
10.
    For b = 1 To Len(c) - 4
11.
        If IsNumeric(Mid$(c, b, 1)) And _
12.
           IsNumeric(Mid$(c, b + 1, 1)) And _
13.
           IsNumeric(Mid$(c, b + 2, 1)) And _
14.
           IsNumeric(Mid$(c, b + 3, 1)) And _
15.
           IsNumeric(Mid$(c, b + 4, 1)) _
16.
        Then
17.
           Tabelle1.Cells(a + 1, 1) = Mid$(c, b, 1000)
18.
        End If
19.
    Next
20.
a = a + 2
21.
Wend
22.
 
23.
End Sub
Bitte warten ..
Mitglied: sejosc
28.08.2006 um 14:43 Uhr
Danke, so funktioniert das endlich, wie ich wollte!
Bitte warten ..
Mitglied: Biber
28.08.2006 um 20:26 Uhr
...und falls ihr mal eine größere Datenmenge haben solltet oder zeitiger essen wollt:
01.
Public Sub BiberTest()
02.
 
03.
Dim a As Long
04.
Dim c, t As String
05.
Dim atokens As Variant
06.
Dim i As Integer
07.
a = 1
08.
While Tabelle1.Cells(a, 1) <> ""
09.
    c = Tabelle1.Cells(a, 1)
10.
    atokens = Split(Tabelle1.Cells(a, 1))
11.
    For i = 0 To UBound(atokens) - 1
12.
         t = atokens(i)
13.
         If (Len(t) = 5) And IsNumeric(t) Then
14.
           Tabelle1.Cells(a + 1, 1) = Mid(c, InStr(1, c, t))
15.
            Exit For
16.
         End If
17.
    Next
18.
a = a + 2
19.
Wend
20.
 
21.
End Sub
Gruß
Biber
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Excel VBA vbyesno
gelöst Frage von Florian86Microsoft Office2 Kommentare

Hallo, ich habe folgenden Code Sub AbgerundetesRechteck1_Klicken() Dim wksOrig As Worksheet Dim wksStore As Worksheet Dim lngLastRow As Long ...

VB for Applications
Excel VBA Code
gelöst Frage von specialuserVB for Applications2 Kommentare

Hallo zusammen, Hab hier einen Button in einer Excel mit Makros erstellt. Der Button hat die Funktion aus der ...

Microsoft Office
Excel VBA - PDF
Frage von SabineTMicrosoft Office3 Kommentare

Hallo Zusammen, ich habe ein pdf, über welches ich bereits die OCR Texterkennung laufen lassen habe. Jetzt möchte ich ...

VB for Applications
Excel VBA Programmierung
gelöst Frage von specialuserVB for Applications7 Kommentare

Hallo zusammen, ich suche auf diesem Weg Hilfe bei einer VBA Programmierung. Und zwar geht es darum 2 Dropdownlisten ...

Neue Wissensbeiträge
iOS
WatchChat für Whatsapp
Tipp von Criemo vor 2 TageniOS3 Kommentare

Ziemlich coole App für WhatsApp User in Verbindung mit der Apple Watch. Gibts für iOS sowohl als auch für ...

iOS
IOS hat nen Cursor !!!
Tipp von Criemo vor 3 TageniOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Off Topic
Avengers 4: Endgame - Erster Trailer
Information von Frank vor 5 TagenOff Topic2 Kommentare

Ich weiß es ist Off Topic, aber ich freue mich auf diesen Film und vielleicht geht es anderen hier ...

Webbrowser
Microsoft bestätigt Edge mit Chromium-Kern
Information von Frank vor 5 TagenWebbrowser5 Kommentare

Microsoft hat nun in seinem Blog bestätigt, dass die nächste Edge Version kein EdgeHTML mehr für die Darstellung benutzen ...

Heiß diskutierte Inhalte
Hosting & Housing
VMware VM mit über 1TB RAM für S4HANA
gelöst Frage von Leo-leHosting & Housing24 Kommentare

Hallo zusammen, wer hat Erfahrng und kann mir einen Tipp zum sizing von S4HANA Systemen geben? Wir möchten, zunächst ...

LAN, WAN, Wireless
WLAN und Ausmessung - Eine Glaubensfrage?
Frage von ptr2brainLAN, WAN, Wireless23 Kommentare

Liebe Experten, als Sys-Admin habe ich mir schon öfter die Frage gestellt, ob es sich beim Thema WLAN und ...

Drucker und Scanner
SW-Laserdrucker mit sechs Papierfächern gesucht
Frage von MOS6581Drucker und Scanner19 Kommentare

Moin, zur Abwechslung mal eine sonderbare Anforderung :) Ich suche einen S/W Laserdrucker (kein MFP), der sechs Papierfächer bzw. ...

Virtualisierung
Gebrauchte Server Hardware als Virtualisierungs-"Spielwiese"?
Frage von NixVerstehenVirtualisierung19 Kommentare

Einen wunderschönen guten Morgen zusammen, ich möchte mich gerne etwas tiefer mit dem Thema Virtualisierung beschäftigen und dazu ein ...