Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

Tabellenabgleich tut nicht...

Frage Entwicklung VB for Applications

Mitglied: parkuhr

parkuhr (Level 1) - Jetzt verbinden

29.11.2005, aktualisiert 02.12.2005, 3824 Aufrufe, 4 Kommentare

hallo zusammen,

ich habe folgendes problem: in einem excel file sind in tabelle 1 und 2 jeweils die spalte A mit teilebezeichnungen belegt. ziel meines makros sollte sein jede bezeichnung aus tabelle1 mit tabelle 2 zu vergleichen und bei einem matching den gesuchten begriff hinter die zeile in spalte B in tabelle 2 zu schreiben.
also: begriff in tabelle1 ist "abdeckschiene" gefundene matchings in tabelle2 sind "frontabdeckschiene" und "heckabdeckschiene" - dann sollten jeweils in spalte B hinter den beiden gefunden begriffen der hauptbegriff stehen.

mein bisheriges makro sieht folgenrdermaßen aus - es läuft zwar ohne fehlermeldung durch doch es tut nicht das was es soll...



Sub Makro4()
'
'
'
Dim x As Integer
Dim y As Integer
Dim z1 As Integer
Dim z2 As Integer
Dim V As String
Dim vari1 As String
Dim Namevari1 As String



Sheets("Tabelle1").Select
Columns("A:A").Select
Selection.Find(What:="", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
z1 = ActiveCell.Row
Sheets("Tabelle2").Select
Columns("A:A").Select
Selection.Find(What:="", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
z2 = ActiveCell.Row
For x = 1 To z1
Sheets("Tabelle1").Activate
vari1 = Range("A1").Offset(x - 1, 0)

For y = 1 To z2
Sheets("Tabelle2").Activate
Namevari1 = Range("A1").Offset(y - 1, 0)
V = InStr(1, Namevari1, vari1, 1)
If V <> "0" Then Range("B1").Offset(y - 1, 0) = vari1

Next y
Next x


End Sub



wäre um hilfe sehr dankbar da ich keine ahnung mehr hab an was es liegen könnte. (es schreibt den begriffe aus tabelle1 nicht hinter die matchings...)
Mitglied: parkuhr
29.11.2005 um 13:59 Uhr
ich hab glaube inzwischen gefunden woran es liegt!
das makro schreibt wie gewollt die begriffe in spalte B - doch nach dem kompletten durchlauf werden die einträge in B wieder entfernt.
gibt es einen befehl der noch vor beendung des makros die datei speichert?

sollte nun nur noch an diesem kleinen befehl hängen

- danke schonmal für jegliche hilfe
Bitte warten ..
Mitglied: halphas
30.11.2005 um 08:58 Uhr
Hallo parkuhr,

füg einfach den Befehl "ActiveWorkbook.Save" in dein script ein. Du solltest die entsprechende Arbeitsmappe vorher einmal abgespeichert haben.
Bitte warten ..
Mitglied: parkuhr
01.12.2005 um 10:15 Uhr
hi

erst mal danke für den befehl - das dumme is nur das meine spalte B direkt nach der beendigung schleife gelöscht wird. also bringt es eher weniger wenns dannach gespeichert wird. wenn ich den befhel zwischen der bedingung und derm Next y schreibe wird die tabelle 200 * 3500 mal gespeichert - was ja auch nicht im sinne des erfinders is und außerdem der arbeitsrechenr nicht aushält.

langsam aber sicher glaub ich das mich excel ärgern will - da in meinem makro eindeutig KEINE anweisung zum köschen der spalte steht...
Bitte warten ..
Mitglied: parkuhr
02.12.2005 um 08:49 Uhr
moinsen,
für alle die dies interessiert: ich habs geschafft!
der erste weg is etwas alternativ, da ich das eigentliche problem umgangen hab. da im letzten durchlauf immer die gesammte spalte B überschrieben wurde, habe ich in die quelldatei (tabelle1) als letzte zeile einen eindeutigen begriff geschrieben (bei mir ende1985)
damit die datei vor dem letzten überschreiben gespeichert wir schreibt man nun zwischen Next y und Next x eine bedingung die das ganze einfach seperat abspeichert:

Next y
If vari1 = "ende1985" then ActiveWorkbook.SaveCopyAs "C:\temp\....xls"
Next x


also habe ich das eigentliche überschreiben nicht gelöst sondern nur direkt vorher eine copy der datei erstellt. das hat mich dann aber wieder weitergebracht (bzw. ein kollege ) das der ausstieg ja mit einer leeren zelle enden muss. das sollte nicht sein. also im grunde is das ganze viel einfach wenn mann die range z1 = ActiceCell.row mit einer "-1" versieht denn dann erkennt das makro den "aussteiger" (die leere zelle) lässt aber diese in ruhe und nimmt eben die richtige zelle vorher.
z1 = ActiveCell.row - 1

mehr wars nich... aber trotzdem danke an alle die mal einen gedanken dran verschwendet haben!
Bitte warten ..
Ähnliche Inhalte
Windows Server
Abfrage per command auf ForwardedEvents tut nicht

Frage von Gert zum Thema Windows Server ...

Sicherheit
2016er Terminalserveradmins aufgepasst - kontrollieren tut Not! (10)

Tipp von DerWoWusste zum Thema Sicherheit ...

Windows Server
GPO: Offlinedateien deaktivieren (6)

Frage von Adnan88 zum Thema Windows Server ...

Datenbanken
SELECTIVITY bei Datenbanken? (1)

Frage von Mimetype zum Thema Datenbanken ...

Neue Wissensbeiträge
Microsoft

Die neuen RSAT-Tools für Win10 1709 sind da

(1)

Information von DerWoWusste zum Thema Microsoft ...

Humor (lol)

Wohnt jemand in Belgien und kann nicht mehr ruhig ausschlafen?

(5)

Information von LordGurke zum Thema Humor (lol) ...

Sicherheits-Tools

Trendmicro OSCE und das Fall Creators Update Win10 RS3

(3)

Information von Henere zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
Hosting & Housing
Mailserver Software Empfehlungen (21)

Frage von sunics zum Thema Hosting & Housing ...

Voice over IP
DeutschlandLAN IP Voice Data M Premium, Erfahrung mit Faxgeräte? (16)

Frage von liquidbase zum Thema Voice over IP ...

TK-Netze & Geräte
TK-Anlage VoIP - DECT Erweiterung (15)

Frage von Lynkon zum Thema TK-Netze & Geräte ...