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

gelöst Durchsuchen einer Spalte nach Variable, wenn gefunden, kopiere Zeile

Mitglied: arndttob

arndttob (Level 1) - Jetzt verbinden

16.03.2010 um 11:03 Uhr, 13906 Aufrufe, 14 Kommentare

Hi Community,
ich habe wiedermal ein Excel/VBA Problem bei dem ich ratlos bin, hoffe Ihr könnt mir helfen.
Wäre super!

da ich leider nicht wirklich bewandert bin was Excel/VBA betrifft, brauch ich wieder Hilfe.
Habe mich zwar schon selbst versucht, doch leider erfolglos.
Folgendes Problem:
ich möchte mit diesem Makro bewirken

- Werte (zB. 1000-5000) aus Sheet Abgleich, Spalte B sollen mit Werten (0-9999) aus Sheet LOP, Spalte K verglichen werden
- wenns eine Übereinstimmung gibt (zB. 3456), soll die Zeile des Wertes 3456 vom Sheet LOP nach Abgleich kopiert werden

Allerdings gibt er mir bei der Zeile "Sheets(SheetNamen).Range("O:U").Paste" einen Laufzeitfehler aus.
Ich hoffe Ihr könnt mir helfen. Ich weiss leider nicht mehr weiter

Option Explicit
Option Compare Text

Const SheetNamen = "Abgleich"
Const SuchSpalte = "B"

Const Suchtext = "LOP!K:K"

Sub copy()

Dim Text As Variant, Found As Boolean, i As Long, EndLine As Long, s As Integer

Sheets(SheetNamen).Activate

EndLine = Cells(Rows.Count, "A").End(xlUp).Row

Text = Split(Suchtext, ",")

For i = 1 To EndLine
If i > EndLine Then Exit For
Found = False
For s = 0 To UBound(Text)
If Cells(i, SuchSpalte) Like Trim(Text(s)) Then Found = True: Sheets("LOP").Range("A" & i & ":G" & i).Select
Selection.copy
Sheets(SheetNamen).Range("O:U").Paste Hier gibt er mir einen Laufzeitfehler aus
Next
If Found = False Then Exit For
Next
'
End Sub

Hoffe Ihr könnt mir helfen.
Vielen Dank im Vorraus.

Liebe Grüße
Tobi
Mitglied: 76109
16.03.2010 um 13:40 Uhr
Hallo arndttob!

Du kannst/darfst für Paste nur eine Zell-Adresse angeben z.B. Selection.Copy Range("A1:G1"), ...Range("O1").Paste

Du kannst es aber auch so machen:
01.
Sheets("LOP").Range("A" & i & ":G" & i).Copy destination:=Sheets(SheetNamen).Cells(i, "O")
Gruß Dieter

PS. Wenn ich das so auf den ersten Blick richtig sehe, dann hast Du Dir den Code irgendwie zusammenkopiert. Die Zeile mit "If i > EndLine Then Exit For" macht hier z.B. überhaupt keinen Sinn, sondern nur, wenn Zeilen gelöscht werden und sich dadurch die Letzte Zeile (EndLine) nach oben verschiebt. Und so auf den zweiten Blick, passt eigentlich garnichts zusammen
Bitte warten ..
Mitglied: arndttob
16.03.2010 um 14:57 Uhr
Hi Didi,

danke für deine Hilfe.

ja ich muss dir leider Recht geben, ich habe alles zusammengewürfelt, da ich mit selbst schreiben noch nicht so weit bin
Ich habe mir dein Script, welches du mir vor ca. 1 Woche gegeben hattest als Vorlage verwendet.

Mit der Zeile von dir, habe ich es nun auch ausprobiert. es gibt keinen Fehler und auch keine Ausgabe.
Ich glaub da liegt noch ein weiter Weg vor mir ^^

Danke&Gruß
Tobi
Bitte warten ..
Mitglied: 76109
16.03.2010 um 16:03 Uhr
Hallo Tobi!

Aja, kam mir doch gleich irgendwie bekannt vor

Und das es nicht funktioniert ist mir schon klar.

Habe ich das jetzt richtig verstanden, dass Du in der Tabelle "Abgleich" Spalte B eine Zahlenreihe hast und einen bestimmten Zahlenbereich mit Von und Bis vorgibst und innerhalb dieses Zahlenbereichs die Tabelle "LOP" Spalte K nach Übereinstimmung durchsuchen und wenn gefunden, dann die besagten Werte von Spalte A-G kopieren und in der Tabelle "Abgleich" ab Spalte O einfügen willst?

Gruß Dieter
Bitte warten ..
Mitglied: arndttob
16.03.2010 um 16:08 Uhr
Hi Dieter,

ja genau so hatte ich es vor, aber ich komme einfach nicht drauf.
Werd mir mal etwas Lektüre besorgen, damit ich auch hier etwas fit werde. :P

Vielen Dank für die Hilfe
Gruß
Tobi
Bitte warten ..
Mitglied: 76109
16.03.2010 um 16:43 Uhr
Hallo Tobi!

Hier mal ein Code zum Testen. Dieselmal sogar entgegen meiner Gewohnheit auch mal auskommentiert
01.
Option Explicit
02.
Option Compare Text
03.

04.
Const SheetHome = "Abgleich"    'Suchwerte Tabellenname
05.
Const RangeHome = "B2:B"        'Suchwerte Zell-Teilbereich
06.
Const SpalteHome = "B"          'Suchwerte Spalte
07.

08.
Const SheetFind = "LOP"         'Suchen in Tabellenname
09.
Const SpalteFind = "K"          'Suchen in Spalte
10.

11.
Const Err1 = "Der vorgebene Zahlenbereich ist unzulässig!"
12.

13.
Sub SearchAndCopy()
14.

15.
    Dim Wks As Worksheet, c As Range, Found As Range, EndLine As Long, Von As Integer, Bis As Integer
16.
    
17.
   'Abfrage-Boxen für Werte Von und Bis (Type 1 = Integer)
18.
    Von = Application.InputBox("Bitte den Zahlenbereich [Von] angeben:", "Suchen Von", 1, Type:=1)
19.
    Bis = Application.InputBox("Bitte den Zahlenbereich [Bis] angeben:", "Suchen Bis", 1, Type:=1)
20.
    
21.
   'Prüfen auf Wert 0 (Abbrechen) und Prüfen Wert Von größer Bis
22.
    If Von <= 0 Or Bis <= 0 Or Von > Bis Then MsgBox Err1, vbExclamation, "Fehler": Exit Sub
23.
    
24.
   'Tabelle Abgleich aktivieren
25.
    Sheets(SheetHome).Activate
26.
    
27.
   'Tabelle "LOP" als Alias Wks festlegen
28.
    Set Wks = Sheets(SheetFind)
29.
    
30.
   'Letzte Zeile in Tabelle Abgleich Spalte B ermitteln
31.
    EndLine = Cells(Rows.Count, SpalteHome).End(xlUp).Row
32.
    
33.
   'Alle Zell-Objecte (c=Range) in Tabelle Abgleich Spalte B durchlaufen
34.
    For Each c In Range(RangeHome & EndLine)
35.
       
36.
       'Prüfen ob Zellinhalte im Bereich Von und Bis liegt
37.
        If c >= Von And c <= Bis Then
38.
           
39.
           'Wenn ja, dann in Tabelle "LOP" in Spalte K den Wert suchen
40.
            Set Found = Wks.Columns(SpalteFind).Find(c, LookIn:=xlValues, LookAt:=xlWhole)
41.
           
42.
           'Prüfen ob der Wert gefunden wurde
43.
            If Not Found Is Nothing Then
44.
               
45.
               'Wenn ja, dann in der Found-Zeile (Found=Range) Spalte A-G kopieren und in Tabelle Abgleich
46.
               'Spalte O in aktueller Zeile einfügen
47.
                Range(Wks.Cells(Found.Row, "A"), Wks.Cells(Found.Row, "G")).copy Destination:=Cells(c.Row, "O")
48.
            End If
49.
        End If
50.
   
51.
   'Nächste Zelle bis Letzte Zelle erreicht ist
52.
    Next
53.
End Sub
Gruß Dieter
Bitte warten ..
Mitglied: Biber
16.03.2010 um 16:51 Uhr
[OT]
Moin didi1954,

Dieselmal sogar entgegen meiner Gewohnheit auch mal auskommentiert
Dafür, dass es nicht deinen Gewohnheiten entspricht, sieht es aber total routiniert und vorbildlich aus.

Richtig wie ein les- und wartbarer Code....

Danke!
wer oder was dich auch immer auf diese Idee gebracht hat

Grüße
Biber
[/OT]
Bitte warten ..
Mitglied: 76109
16.03.2010 um 17:00 Uhr
Hallo Biber!

[OT]
Ich hab's gewusst und extra noch überlegt, ob ich noch eine Anmerkung für Dich mit einfügen soll
[/OT]

Gruß Dieter

PS. Wer mich auf die Idee gebracht hat? Das habe ich irgendwie vergessen (Alzheimer und es wird von Tag zu Tag schlimmer)
Bitte warten ..
Mitglied: Biber
16.03.2010 um 17:08 Uhr
[OT ii]
Moin didi1954
(Alzheimer und es wird von Tag zu Tag schlimmer)
Denk einfach nicht dran...
[/OT ii]
Bitte warten ..
Mitglied: bastla
16.03.2010 um 17:15 Uhr
@76109
[auch OT]
(Alzheimer und es wird von Tag zu Tag schlimmer)
Woher weißt Du das?
[/auch OT]

Dein Code schaut jedenfalls nicht "zum Vergessen" aus ...

Grüße
bastla
Bitte warten ..
Mitglied: 76109
16.03.2010 um 18:08 Uhr
@bastla

[OT i++]
Zitat von bastla:
> (Alzheimer und es wird von Tag zu Tag schlimmer)
Woher weißt Du das?
Na, das merk ich z.B. wenn ich auf's Klo gehe und mir dann erst wieder einfällt, dass ich mir doch eigentlich einen Kaffee holen wollte. Oder wenn ich vor'm Geldautomaten stehe und die PIN-Nummer eingeben soll, die mir dann auch tatsächlich für einen Bruchtteil einer Sekunde gerade entfallen ist

Dein Code schaut jedenfalls nicht "zum Vergessen" aus ...
Ja, ich finde auch, dass es mit Kommantaren garnicht mal so schlecht aussieht, wenn auch vom Code nicht mehr so viel zu sehen ist
[/OT i++]

Gruß Dieter
Bitte warten ..
Mitglied: arndttob
16.03.2010 um 18:09 Uhr
wow ich weiss ganich was ich sagen soll,
vielen vielen Dank, dass du dir so viel Zeit für mich nimmst

und auch so viel zum lernen dabei ^^
werds morgen gleich mal testen.

vielen Dank!
Bitte warten ..
Mitglied: 76109
16.03.2010 um 18:15 Uhr
Hallo Tobi!

Zitat von arndttob:
wow ich weiss ganich was ich sagen soll,
vielen vielen Dank, dass du dir so viel Zeit für mich nimmst
Am besten erstmal garnix sagen und erstmal testen
und auch so viel zum lernen dabei ^^
Ja, auf jedenfall weißt Du jetzt schon mal, wie man einen Code Formgerecht auskommentiert
vielen Dank!
Yepp gern geschehen

Gruß Dieter
Bitte warten ..
Mitglied: arndttob
17.03.2010 um 12:49 Uhr
Hi Dieter,

habe es nun testen können.
Funktioniert alles wie am Schnürchen.

Nun brauch ich mich nicht mehr durch die Tabellen wühlen, ewig rumkopieren und sortieren.

Vielen vielen Dank nochmal für deine Hilfe, du hast mir sehr geholfen

Grüße
Tobi
Bitte warten ..
Mitglied: 76109
17.03.2010 um 18:11 Uhr
Hallo Tobi!

Freut mich, dass es funktioniert

Gruß Dieter
Bitte warten ..
Neue Wissensbeiträge
Windows 7
Updategängelung auf Windows 10, die zweite
Information von Penny.Cilin vor 1 TagWindows 7

Hallo, da Windows 7 im kommenden Jahr nicht mehr supportet wird, werden Nutzer von Window 7 home premium wieder ...

Internet
EU-Urheberrechtsreform: Zusammenfassung
Information von Frank vor 3 TagenInternet1 Kommentar

Auf golem.de gibt es eine Analyse von Friedhelm Greis, der das Thema EU-Urheberrechtsreform gut und strukturiert zusammenfasst. Zwar haben ...

Microsoft Office

Office365 Schwachstellen bei Sicherheit und Datenschutz

Information von Penny.Cilin vor 4 TagenMicrosoft Office7 Kommentare

Auf Heise+ gibt es einen Artikel bzgl. Office365 Schwachstellen. Das ist noch ein Grund mehr seine Daten nicht in ...

Sicherheit
Schwachstellen in VPN Clients
Tipp von transocean vor 6 TagenSicherheit2 Kommentare

Moin, es gibt Sicherheitslücken bei VPN Clients namhafter Hersteller, wie man hier lesen kann. Gruß Uwe

Heiß diskutierte Inhalte
Notebook & Zubehör
Hardware defekt ?
Frage von mausemuckelNotebook & Zubehör14 Kommentare

Hallo und ein schönes Osterfest an alle. Ich benötige mal euer Schwarm wissen. Ich habe hier ein Notebook Lenovo ...

LAN, WAN, Wireless
Lancom und VLANs
Frage von TimmheLAN, WAN, Wireless11 Kommentare

Hallo an alle ich habe momentan ein sehr merkwürdiges problem bei dem ich nicht mehr weiter komme und hoffe ...

Virtualisierung
Unix System virtualisieren
Frage von BananenmeisterVirtualisierung10 Kommentare

Hallo Zusammen, Ich möchte gerne eine Virtualisierungs-Software auf meinem kleinen ML Server installieren um einige Unix Systeme zu virtualisieren. ...

Netzwerkmanagement
Konfiguration von IPv6 in einer Domäne mit DHCP
Frage von gnoovyNetzwerkmanagement9 Kommentare

Hi Zusammen, ich bin gerade etwas am verzweifeln. Ich habe eine Testumgebung aufgebaut, um mich in das Thema IPv6 ...