VBA Scribt

Canopus231171

Level-1
Beiträge
70
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich versuche eine If Schleife in Excell zu programmieren.

eigentlich recht einfach wenn man weiß wie es geht.

Zelle G3 hat verschiedene Datentypen zur Auswahl. BOOL;INT;DINT;REAL
Zelle F3 hat die Bits 0..7 zur Auswahl.

Ich möchte wenn Zelle G3 nicht den WERT "BOOL" hat, das F3 entweder auf 0 gesetzt wird oder noch besser, die Celle F3 als nicht aktiv gesetzt wird.
Jetzt kommen eure Ideen ins Spiel, ich hab´s nicht mit VB...:ROFLMAO:
 
Wie möchtest Du unterscheiden, ob 1=Int oder 1=Bool ist um dann die Zelle F3 zu deaktivieren ;)?

Außerdem finde ich , das es gerade im Bereich Excel VBA sehr viele Beispiele im Netz gibt!
Also wenn man Excel VBA For-Schleife oder For Next bei Googel sucht findet man zig gute Hinweise.
Gerade z.B. unter www.herber.de findet man sehr viel gute Infos ...

Code:
 For iCounter = 1 To 6
      Cells(iCounter, 1).Value = "Zeile " & iCounter
   Next iCounter


und einen Zelle kann man nach folgendem Bsp. sperren

Code:
[/FONT]Cells("F", 3).Select
Selection.Locked = True
[FONT=arial]
 
Zuletzt bearbeitet:
Ansonsten kannst es noch wie folgt machen:

Den Text in Zelle G3 in eine Stringvariable einlesen. Dann eine Case Anweisung auf die Stringvariable. Und dann kannst du bei jedem Case festlegen was mit deiner Zelle F3 passieren soll.
 
Mit diesem Code habe ich es nun realisiert.


Private Sub Worksheet_Change(ByVal Target As Range)


If Target.Address = "$G$3" Then
If Not Target.Value = "BOOL" Then


Target.Parent.Unprotect
Target.Locked = False
Target.Parent.Protect DrawingObjects:=False, Contents:=True, Scenarios:=True

Range("$F$3").Parent.Unprotect
Range("$F$3").Interior.Color = RGB(254, 0, 0)
Range("$F$3").Locked = True
Range("$F$3").Parent.Protect DrawingObjects:=False, Contents:=True, Scenarios:=True
Else
Range("$F$3").Parent.Unprotect
Range("$F$3").Interior.Color = RGB(0, 254, 0)
Range("$F$3").Locked = False
Range("$F$3").Parent.Protect DrawingObjects:=False, Contents:=True, Scenarios:=True

End If

End If

End Sub
 
Zuviel Werbung?
-> Hier kostenlos registrieren
1. Die drei IF Anweisungen würde ich gerne als UND Verknüpfung programmieren, in etwa
If (ActiveSheet.CheckBoxes("114").Value = 1) AND (Target.Address = "$D$3") AND (Target.Value = "I") Then

(Target.Value = "I" bezieht sich aus "$D$3" die Zelle kann mit I oder Q ausgewählt werden)



2. In Zelle "$K$3" steht ein Wert z.B. "I0.1" dieser Wert soll z.B in Zelle "$C$3" übernommen werden und zusätzlich die Variable IBN angehängt werden . Der Wert in Zelle C3 sollte dann "I0.1_IBN" ausgegeben werden.

Sub Kontrollkästchen114_Klicken()

If ActiveSheet.CheckBoxes("114").Value = 1 Then
If Target.Address = "$D$3" Then
If Target.Value = I Then
Range("$B$3").Value "Wert aus $K$3.IBN"
Range("$C$3").Value "Wert aus $K43.StartUp"
Else
Range("$B$3").Value "n.v."
Range("$C$3").Value "n.v."
End If
End If
End If



End Sub
 
Unbenannt.JPG

Ich möchte die Zeilennummer als Variable Declarieren, wie auf dem Bild. Zeile hat den Wert 10
( Gelesen werden soll "Tabelle Code" "Spalte H" "Zeile 10" wie muss ich das Programmieren ??? Habe schon einige Varianten durch => anstatt Range("Code!H10") soll Range("Code!H(Zeile)").
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ich versuche eine If Schleife in Excell zu programmieren.
eigentlich recht einfach wenn man weiß wie es geht.
Und wahrscheinlich so richtig banal, wenn man wüsste, was Du mit "If Schleife" meinst!
Eine ProgrammSchleife, die abhängig von einer Bedingung ausgeführt wird oder eine (oder mehrerere) If-Abfrage(n), die in einer ProgrammSchleife vorkommen?

Zelle G3 hat verschiedene Datentypen zur Auswahl. BOOL;INT;DINT;REAL
Zelle F3 hat die Bits 0..7 zur Auswahl.
Ich möchte wenn Zelle G3 nicht den WERT "BOOL" hat, das F3 entweder auf 0 gesetzt wird oder noch besser, die Celle F3 als nicht aktiv gesetzt wird.
Was darf ich mir unter "hat zur Auswahl" vorstellen? Hat das etwas mit den CheckBoxes zu tun, von denen Du in #6 schreibst?

Meinst Du Datentyp, wenn Du Datentyp schreibst und meinst Du den Text "BOOL", wenn Du "Wert BOOL" schreibst?
Was bedeutet "die Celle F3 als nicht aktiv gesetzt wird"? Es können mehrere Zellen selektiert werden und eine (1) davon kann aktiviert sein.
Sobald Du eine andere als Zelle F3 selektierst oder aktivierst, ist F3 nicht mehr die aktive Zelle.

If Not Target.Value = "BOOL" Then
Siehe oben, hier wird abgefragt, ob der Text "BOOL" in der Zelle steht, nicht ob ihr Datentyp BOOL ist.
Range("$F$3").Parent.Unprotect
Mit parent habe ich in diesem Zusammenhang noch nie gearbeitet ... ich weiss gar nicht, was hier gemeint ist ... könnte mir vorstellen das Arbeitsblatt? Muss ich gleich mal ausprobieren.
Gruss, Heinileini

PS:
Statt Range("A1") kann man auch Range("A" & VariableMitZeilenNr) oder Range(VariableMitSpaltenBuchstabe$ & "1") oder Range(VariableMitSpaltenBuchstabe$ & VariableMitZeilenNr) schreiben, wobei
- VariableMitSpaltenBuchstabe$ eine StringVariable ist, die den Buchstaben enthält und
- VariableMitZeilenNr eine numerische oder StringVariable ist, die die ZeilenNr enthält.

Bemerkenswert und manchmal auch nützlich die Schreibweise:
Range(Cells(1,2),Cells(3,4)). ... um einen zusammenhängenden Bereich von Zellen anzusprechen (1 steht hier für Zeile der Zelle oben links, 2 für Spalte der Zeile oben links,
3 für Zeile der Zelle unten rechts, 4 für Spalte der Zeile unten rechts.
[SUB][/SUB]
 
Zuletzt bearbeitet:
Die IP Addresse wird in Excel aufgeschlüsselt und A10, B10, C10, D10 abgespeichert.
A10 soll in die Variable IP1, B10 in IP2, C10 in IP3 und D10 in IP4 kopiert werden.

Anschließend sollte daraus die IP Addresse wieder zusammengesetzt werden aber wie??

"TEXT;http:// IP1.IP2.IP3.IP4 /FileBrowser/Download?Path=/DataLogs/myDataLog1a.csv" _
, Destination:=Range("Data_PLC!$A$1"))





Dim IP1 As String
Dim IP2 As String
Dim IP3 As String
Dim IP4 As String


Sub csvHolen()


IP1 = "$A$10"
IP2 = "$B$10"
IP3 = "$C$10"
IP4 = "$D$10"




Range("A1").Select
ActiveCell.FormulaR1C1 = "CSV Datei laden"
Columns("A:A").ColumnWidth = 13.44


With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic

.TintAndShade = 0
.PatternTintAndShade = 0
End With




Selection.ClearContents

With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;http://IP1.IP2.IP3.IP4/FileBrowser/Download?Path=/DataLogs/myDataLog1a.csv" _
, Destination:=Range("Data_PLC!$A$1"))
 
Code:
IP1 = Range("Data_PLC!$A$5")
[COLOR="#008000"]'oder[/COLOR]
IP1 = ActiveSheet.Range("$A$5")
[COLOR="#008000"]'oder[/COLOR]
IP1 = Worksheets("Data_PLC").Range("$A$5")
[COLOR="#008000"]'oder[/COLOR]
IP1 = Worksheets("Data_PLC").Cells(5, 1) [COLOR="#008000"]'Zeile 5 Spalte 1 ist $A$5[/COLOR]
[COLOR="#008000"]'oder[/COLOR]
...

Harald
 
Zurück
Oben