Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1348to1352
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Einfügen mit Abfrage

Einfügen mit Abfrage
10.02.2014 18:10:38
Kim
Hallo zusammen,
ich habe eine Datei aus der bei Klick definierte Zellen aus verschiedenen Sheets in eine Spalte geschrieben werden. Diese Liste dient als Gesamtübersicht. Bis hierher funktioniert alles ohne Probleme.
In der ersten Spalte (A1) steht immer die Projektnummer welche aufsteigend ist. Es ist möglich, das dieses Projekt bearbeitet wird und dann in der Gesamtübersicht überschrieben werden soll. Eine MsgBox soll vorher danach fragen ob überschrieben werden soll.
Ich würde gerne beim Übertragen der Daten in die Gesamtübersicht prüfen ob die Projektnummer schon vorhanden ist. Wenn ja dann soll eine MsgBox fragen ob diese überschrieben werden soll oder nicht.
Hier der Code den ich bisher habe:
Sub Schaltfläche29_Klicken()
Const strZiel As String = "X:\Zieldatei\Gesamtübersicht.xlsx"          'Pfad + Dateiname
Dim WB_B As Workbook
Dim WsQuelle As Worksheet
Dim WsZiel As Worksheet
'Quellesheet definieren
Set WsQuelle = ThisWorkbook.Worksheets("Quelle")        ' 'Ab hier sollte geprüft werden ob H3 schon in der Zieldatei vorhanden ist
'Anzeigen das geschrieben wurde
MsgBox ("Daten wurden übertragen")
'Zieldatei speichern und schließen
WB_B.Close savechanges:=True
'Speicherplatz freigeben:
Set WsZiel = Nothing
Set WsQuelle = Nothing
Set WB_B = Nothing
End Sub
Danke vorab für die Hilfe
Grüße
Kim

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Einfügen mit Abfrage
11.02.2014 12:14:08
fcs
Hallo Kim,
die entsprechende Pürfung müsstest du doch machen, bevor die Daten in die Liste einträgst.
Könnte dann etwa wie folgt aussehen (ungetestet, da ich die Tabellen nicht alle nachbauen wollte).
Hinweis: Wenn du schon mit Objektvariablen arbeitetst, wie hier mit WsZiel, dann solltest du bei den zugehörigen Cells-Anweisungen die Referenz zum Tabellenblatt auch immer vollständig angeben.
Gruß
Franz
Sub Schaltfläche29_Klicken()
Const strZiel As String = "X:\Zieldatei\Gesamtübersicht.xlsx"          'Pfad + Dateiname
Dim WB_B As Workbook
Dim WsQuelle As Worksheet
Dim WsZiel As Worksheet
Dim rngZelle As Range
'Quellesheet definieren
Set WsQuelle = ThisWorkbook.Worksheets("Quelle")        ' 

Anzeige
AW: Einfügen mit Abfrage
11.02.2014 13:35:00
Kim
Hallo,
danke erst mal. Leider zeigt er mir einen Fehler in folgender Zeile
With WsZiel
Set rngZelle = .Columns(1).Find(What:=WsQuelle.Range("H3").Value, _
LookIn:=xlValues, lokat:=xlWhole)
lrow = .Cells(.Rows.Count, 1).End(xlUp).Row 'letzte Zeile
Es fehlte auch noch ein End Select das habe ich schon ausgeschlossen.
Leider kann ich den Fehler nicht weiter eingrenzen.
Danke
Kim

AW: Einfügen mit Abfrage
11.02.2014 13:39:48
Kim
Hallo noch einmal,
Als Fehlermeldung erhalte ich:
Benanntes Argument nicht gefunden
Grüße
Kim

schaumal heisst nicht lokat, sondern lookat (owT)
11.02.2014 13:44:55
EtoPHG

AW: schaumal heisst nicht lokat, sondern lookat (owT)
11.02.2014 13:53:34
Kim
Hallo,
danke erst mal. Das war es!!! Jetzt überträgt er die Daten, er zeigt allerdings nicht an, dass der Datensatz schon vorhanden ist. Wenn ich Zwei mal übertragen drücke sollte er ja anzeigen das die Projektnummer schon vorhanden ist.
Hier noch mal der Code:
Sub Schaltfläche29_Klicken()
Const strZiel As String = "X:\Zieldatei\Gesamtübersicht.xlsx"          'Pfad + Dateiname
Dim WB_B As Workbook
Dim WsQuelle As Worksheet
Dim WsZiel As Worksheet
Dim rngZelle As Range
'Quellesheet definieren
Set WsQuelle = ThisWorkbook.Worksheets("Quelle")        ' 

Anzeige
If rngZelle Is Nothing Then
11.02.2014 14:01:43
Rudi
Hallo,
heißt doch, dass die Projektnummer nicht gefunden wurde.
Und warum wird, wenn der Datensatz überschrieben werden soll, dieser eine Zeile über den gefundenen geschrieben?
      Case vbYes
lrow = rngZelle.Row - 1
Gruß
Rudi

AW: If rngZelle Is Nothing Then
11.02.2014 14:54:04
Kim
Hallo,
Problem gelöst. Da fehlte das Not also nicht

If rngZelle Is Nothing Then
sondern:
If Not rngZelle Is Nothing Then

Select Case MsgBox("Projekt """ & WsQuelle.Range("H3").Text _
& """ ist in Zieltabelle schon vorhanden." & vbLf & _
"Daten überschreiben? Nein = am Ende nochmals eintragen", _
vbYesNoCancel, "Projekt in Übersicht eintragen")
Case vbYes
lrow = rngZelle.Row - 1
Case vbNo
Ich danke Euch !!!!!!!!
Grüße
Kim
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige