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

Frage Entwicklung VB for Applications

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

Mitglied: sejosc

sejosc (Level 1) - Jetzt verbinden

24.08.2006, aktualisiert 28.08.2006, 6694 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: Alle Werte einer Spalte in einer anderen Suchen
gelöst Frage von KevinPMicrosoft Office4 Kommentare

Hallo, ich hänge jetzt schon seit Tagen dran und komm nicht zu Rande. Ich versuche jeden Wert eines Tabellenblattes ...

VB for Applications
Spalte suchen, rechnen und ersetzen Excel vba
gelöst Frage von 123660VB for Applications11 Kommentare

Hallo zusammen, ich hoffe ihr könnt mir weiter helfen. mein Problem ist : ich habe ein Tabelle mit 2 ...

VB for Applications
Inhalte vergleichen - Excel VBA
gelöst Frage von Acht85VB for Applications10 Kommentare

Hallo lieber User, ich habe ein kurze Frage und würde mich sehr freuen, wenn ihr mir damit weiterhelfen könnt. ...

VB for Applications
Excel VBA gefilterte Spalten vergleichen
gelöst Frage von YotYotVB for Applications3 Kommentare

Aloha! Ich bin seit satten fünf Stunden auf der Suche nach einer funktionierenden Lösung und scheitere daran, dass ich ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 2 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 3 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 3 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 3 TagenSicherheit12 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
E-Mail
Erfahrungen mit hMailServer gesucht
Frage von it-fraggleE-Mail10 Kommentare

Hallo, meine neue Stelle möchte einen eigenen Mailserver. Ich als Linuxkind war direkt geistig mit Postfix dabei. Leider wollen ...

Entwicklung
VBS: alle PDF-Dateien in einem Ordner gleichzeitig öffnen
gelöst Frage von JuweeeEntwicklung9 Kommentare

Hallo, ich habe in deiner Ordnerstruktur (.\Tagesberichte\xx.18\) mehrere dynamische PDF-Formulare (mit LCD erstellt). Die Berichtsformulare sind im Layout alle ...

Firewall
Penetrationstester-Labor - Firewalls
Frage von Oli-nuxFirewall9 Kommentare

Mich würde interessieren warum man beim Einrichten eines Penetrationstester-Labor (VMs) die Firewall der Systeme deaktivieren soll? Hat das nur ...

Netzwerkgrundlagen
IPv6 Inter-VLAN Routing
gelöst Frage von clSchakNetzwerkgrundlagen9 Kommentare

Hi ich befasse mich gerade mit der Implementierung von IPv6 was bisher (in einem VLAN) korrekt funktioniert inkl. DNS ...