Live-Forum - Die aktuellen Beiträge
Datum
Titel
18.04.2024 18:04:29
18.04.2024 16:33:24
Anzeige
Archiv - Navigation
1396to1400
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

verschieben mit VBA

verschieben mit VBA
23.12.2014 10:45:41
Sandra
Hallo zusammen,
Hoffe ihr könnt mir helfen:
Ich möchte gerne über einen Button was verschieben.
Tabelle1
SpalteA..SpalteB..SpalteC...SpalteD..SpalteE
preisa...preisb...preisC....Art.nr...Bezeichn.
Ich markiere z.b. Spalte D3(Artikelnr.) und geh dann auf dem button ist in J1drin( Schieben)
Dann soll per VBA die D3(Artikelnr.)und die E3(Bezeichnung)in das Tabellenblatt2
SpalteA...SpalteB.....SpalteC...SpalteD.SpalteE
Artikel...Bezeichnung.grund.....datum...Status
D3 in SpalteA
E3 in SpalteB
verschoben werden.
Zugleich müsste eine Meldung kommen, "Warum wollen sie diesen Artikel verschieben)
Der Grund sollte dann in Spalte C stehen.
Dann autom. Das Darum wann ich es verschoben habe und der Status müsste dann ein "roter Punkt" für Warten.
somit kann ich Artikel in die Tabelle2 verschieben die nicht lieferbar sind usw...
Wäre sowas machbar?
Hoffe ihr könnt mir helfen
Lg.
sandra

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: verschieben mit VBA
23.12.2014 23:16:00
Sandra
Schönen guten Abend.
Ich glaub es war zu kompliziert geschrieben oder?
Liebe Grüße
SANDRA

AW: verschieben mit VBA
24.12.2014 14:31:13
hary
Moin
Wenn der Button ein ActiveX Element ist dann diesen Code in den Code des Button.
Testen in einen Mappenkopie!!
Private Sub CommandButton1_Click()
Dim naechste As Long
If ActiveCell.Column = 4 Then
If MsgBox("Möchten sie den Artikel wirklich verschieben?", vbQuestion + vbYesNo, "Nachfrage") _
= vbYes Then
With Worksheets("Tabelle2")
naechste = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Cells(naechste, 1) = ActiveCell
.Cells(naechste, 2) = ActiveCell.Offset(, 1)
.Cells(naechste, 3) = Application.InputBox("Bitte geben sie einen Grund ein!", "Grund")
.Cells(naechste, 4) = Date
.Cells(naechste, 5).Interior.Color = vbRed
End With
End If
Rows(ActiveCell.Row).Delete
End If
End Sub

gruss hary

Anzeige
AW: verschieben mit VBA
24.12.2014 16:54:09
Sandra
Hallo Harry,
Klappt super, bis das die Zeile dann verschwindet.kann man es einfach diese 2 Spalten leer lassen, damit die preise nicht verschwinden?
Und wenn ich versehentlich die Falsche Spalte klicke kommt dann die Meldung: Möchten sie den Artikel verschieben? sollte ich dann auf NEIN klicken, verschwindet er komplett. Des darf nicht passieren. Der muss stehen bleiben, da ich auf Nein drücke
Wäre echt klasse wenn du das noch mal bearbeitest.
Lieben Gruß und Danke Danke
Sandra

AW: verschieben mit VBA
24.12.2014 17:20:19
hary
Moin
Sry, bin ein End If zu weit gerutscht.
Private Sub CommandButton1_Click()
Dim naechste As Long
If ActiveCell.Column = 4 Then
If MsgBox("Möchten sie den Artikel wirklich verschieben?", vbQuestion + vbYesNo, "Nachfrage") _
_
= vbYes Then
With Worksheets("Tabelle2")
naechste = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Cells(naechste, 1) = ActiveCell
.Cells(naechste, 2) = ActiveCell.Offset(, 1)
.Cells(naechste, 3) = Application.InputBox("Bitte geben sie einen Grund ein!", "Grund")
.Cells(naechste, 4) = Date
.Cells(naechste, 5).Interior.Color = vbRed
End With
ActiveCell.Resize(1, 2).ClearContents
End If
End If
End Sub

gruss und froWeih.
hary

Anzeige
AW: verschieben mit VBA
24.12.2014 19:07:39
Sandra
Hallo Hary
Jetzt klappt es:-)
Nur noch eine Frage:
Wenn ich den ersten Code nehme und ich klicke bei bei Tabelle2 die ArtikelNummer an, wenn er wieder verfügbar ist, will ich den in der Tabelle 1 Ab Spalte K gelistet haben. ABer ohne Rotes Kästchen sondern in grün.
Also dann so:
SpalteK....SpalteL.....SpalteM..SpalteN
Artikelnr..Bezeichnung.Datum....verfügbar
Hoffe du bekommst es auch hin.
Lieben lieben dank
Frohe Weihnachten;-)
Liebe grüße
SANDRA

Hab es hin bekommen nur eine frage noch
25.12.2014 00:26:04
Sandra
Hallo,
Wie muss ich den Code ändern das ein Text rauskommt:
.Cells(naechste, 6) = den Text"nicht Lieferbar"
Besten Dank
Liebe grüße
Sandra

Anzeige
AW: Hab es hin bekommen nur eine frage noch
25.12.2014 07:18:05
Crazy
Hallo Sandra
die Antwort hast du dir doch schon fast selbst gegeben
.Cells(naechste, 6) = "nicht Lieferbar"

MfG Tom

AW: Hab es hin bekommen nur eine frage noch
25.12.2014 13:15:27
Sandra
Hallo Tom,
Autsch:-) danke
Kann man dem code :
Private Sub CommandButton1_Click() Dim naechste As Long If ActiveCell.Column = 4 Then If MsgBox("Möchten sie den Artikel wirklich verschieben?", vbQuestion + vbYesNo, "Nachfrage") _ _ = vbYes Then With Worksheets("Tabelle2") naechste = .Cells(Rows.Count, 1).End(xlUp).Row + 1 .Cells(naechste, 1) = ActiveCell .Cells(naechste, 2) = ActiveCell.Offset(, 1) .Cells(naechste, 3) = Application.InputBox("Bitte geben sie einen Grund ein!", "Grund") .Cells(naechste, 4) = Date .Cells(naechste, 5).Interior.Color = vbRed End With ActiveCell.Resize(1, 2).ClearContents End If End If End Sub
so noch ändern:
Das was jetzt verschoben wird auch in das Tabellblatt"protokoll" verschiebt wird und dieses tabellenblatt mit einen passwort (2510) geschützt wird, das keiner herumfuschen kann.. und am Ende des Jahres sehe ich welche Artikel am meisten nicht geliefert wurde
Ware das Möglich
liebe grüße
Sandra

Anzeige
AW: Hab es hin bekommen nur eine frage noch
25.12.2014 14:32:07
hary
Moin
Ungetestet!
Private Sub CommandButton1_Click()
Dim naechste As Long
Dim wks2 As Worksheet
Set wks2 = Worksheets("protokoll")
If ActiveCell.Column = 4 Then
If MsgBox("Möchten sie den Artikel wirklich verschieben?", vbQuestion + vbYesNo, "Nachfrage") _
= vbYes Then
With Worksheets("Tabelle2")
naechste = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Cells(naechste, 1) = ActiveCell
.Cells(naechste, 2) = ActiveCell.Offset(, 1)
.Cells(naechste, 3) = Application.InputBox("Bitte geben sie einen Grund ein!", "Grund")
.Cells(naechste, 4) = Date
.Cells(naechste, 5).Interior.Color = vbRed
wks2.Unprotect "2510"
.Cells(naechste, 1).Resize(1, 4).Copy wks2.Cells(wks2.Cells(Rows.Count, 1).End(xlUp) _
.Row + 1, 1)
wks2.Protect "2510"
End With
ActiveCell.Resize(1, 2).ClearContents
End If
End If
End Sub

gruss hary

Anzeige
AW: Hab es hin bekommen nur eine frage noch
25.12.2014 19:17:53
Sandra
Hallo Hary ,
funktioniert super alles. Ich könnte dich ......:-)
Danke Danke
Liebe grüße
SANDRA

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige