Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1420to1424
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

Kurzes Programm zu Unterscheidung

Kurzes Programm zu Unterscheidung
18.04.2015 22:09:18
Guten Abend,
Ich brauche ein kleines Einfach Programm und habe leider keine Erfahrung mit VBA. Folgendes soll das Programm tun:
Wenn in eine bestimmten Spalte ein bestimmter Text steht, soll in der aktuellen Zelle eine bestimmte Formel eingefügt werden. Dieses Makro soll in einer ganzen spalte laufen.
So hatte ich bereits angefangen:
Sub UnterscheidungTyp()
If Sheets("7").Cells(3, ActiveCell.Row) = Dose Then
Row As Double
Row = ActiveCell.Row
Dim oBlatt As Worksheet
Set oBlatt = ThisWorkbook.Worksheets("Tabelle1") 'Typ auswählen'
With oBlatt.Range(ActiveCell.Column, ActiveCell.Row).FormulaLocal = "=Produkt(G&Row&,H& _
Row&)"
End With
End If
End Sub
So hatte ich bis jetzt angefangen aber da sieht man vermutlich, dass ich keine Ahnung habe.
LG und Danke

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

Betreff
Datum
Anwender
Anzeige
AW: Kurzes Programm zu Unterscheidung
19.04.2015 00:27:32
Oberschlumpf
Hi ?
versuchs mal so:
Sub UnterscheidungTyp()
Dim lloRow As Double
Dim oBlatt As Worksheet
If Sheets("7").Cells(3, ActiveCell.Row) = Dose Then
lloRow = ActiveCell.Row
Set oBlatt = ThisWorkbook.Worksheets("Tabelle1")
oBlatt.Range(ActiveCell.Column, ActiveCell.Row).FormulaLocal = "=Produkt(G" &  _
lloRow & ";H" & lloRow & ")"
End If
Set oBlatt = Nothing
End Sub

Wenn in deinem Code Option Explicit verwendet wird, führt die Zeile
If Sheets("7").Cells(3, ActiveCell.Row) = Dose Then
zu einem Fehler, da Dose als Variable interpretiert wird, aber deswegen vorher als solche deklariert werden muss, was in deinem Code noch fehlt...Dim Dose As ...
Wenn du nach "Dose", also nach dem Texteintrag "Dose" suchst, dann ändere die Zeile um in
If Sheets("7").Cells(3, ActiveCell.Row) = "Dose" Then
Hilfts?
Ciao
Thorsten
...wenns nich hilft, zeig uns bitte per Upload eine Excel-Beispiel-Datei mit Beispiel-Daten...

Anzeige
AW: Kurzes Programm zu Unterscheidung
19.04.2015 06:40:49
Werner
Hallo Thorsten,
meinst du nicht, dass in der Code-Zeile
If Sheets("7").Cells(3, ActiveCell.Row) = Dose Then
ein Hund begraben ist? Es wird die Zeilennummer der aktiven Zelle als Spaltennummer übergeben. Wäre z.B. die aktive Zelle A10 dann würde der Code in diesem Fall J3 übergeben und dort nach Dose (was auch immer, Variable oder Zeichenfolge) suchen.
Ich denke der Frager sucht nach Dose in der Zeile der aktiven Zelle, Spalte C. Dann müsste der Code
If Sheets("7").Cells(ActiveCell.Row, 3) = Dose Then
lauten.
Gruß Werner

Anzeige
AW: Kurzes Programm zu Unterscheidung
19.04.2015 10:26:02
Oberschlumpf
Hi Werner
ja, mag sein, dass du Recht hast.
Ich hab den Code nur so weit umgeshcrieben, was die Logik der "VBA-Voraussetzungen" betrifft...eben MIT Dim... wenn/wo erforderlich und ohne With..., weil in diesem Fall mit With... = Fehler.
Aber, mein Fehler :-), ich hab den Code überhaupt nicht getestet.
Na ja, eigtl nicht mein Fehler, da ja gar nix zum Testen da war.
Ciao
Thorsten

AW: Kurzes Programm zu Unterscheidung
19.04.2015 12:44:00
Werner
Hallo Thorsten,
sollte keine Kritik sein. Ich lese hier häufig mit um zu lernen. Dass ich dir nicht das Wasser reichen kann ist mir durchaus bewusst. Aber so langsam beginne ich den Code auch zu verstehen. Deshalb mein Beitrag, nur zu meinem eigenen Verständnis.
Gruß Werner

Anzeige
AW: Kurzes Programm zu Unterscheidung
19.04.2015 12:44:35
Werner
Hallo Thorsten,
sollte keine Kritik sein. Ich lese hier häufig mit um zu lernen. Dass ich dir nicht das Wasser reichen kann ist mir durchaus bewusst. Aber so langsam beginne ich den Code auch zu verstehen. Deshalb mein Beitrag, nur zu meinem eigenen Verständnis.
Gruß Werner

AW: Kurzes Programm zu Unterscheidung
19.04.2015 15:01:21
Oberschlumpf
Hey Werner!
Alles gut! :-)
Auch Kritik ist gut!
Und ich mag es, wenn ich kritisiert werde. Klar, manchmal kann es sein, dass es sich im ersten Moment nicht sooo gut anfühlt, aber egal...wenn ich kritisiert werde, bekomme ich die Chance, etwas besser, bzw richtig zu machen. Ich muss mit der Kritik nur einverstanden sein und es umsetzen :-)
Aber erst mal Danke für dein Kompli....uih uih...dass mal jemand meint, mir nich das Wasser reichen zu können :-))...danke....aber....auch ICH mache Fehler....wie DU ja jetzt in diesem Thread festgestellt hast!
Und ich, oder du, oder irgdwer anders, der irgdwas ganz gut kann - ist allein NIE genau so gut, wie wir alle zusammen! :-)
Also, Attacke Werner!, auf zu den nächsten Excel-Abenteuern, und lass sie uns gemeinsam bestehen...hihi
Ciao + noch n schönen Sonntag
Thorsten

Anzeige
AW: Kurzes Programm zu Unterscheidung
19.04.2015 22:56:04
Werner
Hallo,
ich habe das jetzt einmal so interpretiert - die Infos die du mitteilst sind etwas dürftig.
Annahme: Du befindest dich im Tabellenblatt 1 in Zelle D10 (Spalte D muss ggf. angepasst werden) und möchtest schauen ob im Tabellenlbatt 7 in Spalte C Zeile 10 (Zeile der aktiven Zelle in Blatt 1) der Begriff "Dose" steht. Wenn ja dann soll in der aktiven Zelle in Blatt 1 die Formel eingetragen werden.
Der Code gehört ins Tabellenblatt 1 (rechter Mausklick auf den Tabellenblattreiter, Code anzeigen wählen und Code ins Codefenster kopieren). Der Code wird ausgelöst durch Doppelklick in eine Zelle im Tabellenblatt 1 Spalte D (muss ggf. angepasst werden).
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Aktiv As Worksheet
Dim Suche As Worksheet
Set Aktiv = ThisWorkbook.Worksheets("Tabelle1")
Set Suche = ThisWorkbook.Worksheets("Tabelle7")
With Aktiv
If Target.Column = 4 Then 'wirkt in Spalte 4 ggf. anpassen
If Suche.Cells(Target.Row, 3) = "Dose" Then
Target.FormulaLocal = "=Produkt(G" & Target.Row & ";H" & Target.Row & ")"
Target.Offset(1, 0).Select
Else
MsgBox "Dose ist in " & Suche.Name & " C" & Target.Row & " nicht vorhanden."
End If
End If
End With
End Sub
Gruß Werner
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige