Anzeige
Archiv - Navigation
1012to1016
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

Array ???

Array ?
07.10.2008 08:56:04
Snewi
Hallo,
ich möchte gerne einer Variablen (Name) mehrere Strings übergeben z.B eins,zwei,drei! Wie kann ich das machen?
Wie würde der Code in VBA dann aussehen?
Gruß

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Array ?
07.10.2008 09:01:00
Reinhard
Hi Snewi,

Sub test()
Dim strArr(2) As String, N As Integer
strArr(0) = "Eins"
strArr(1) = "Zwei"
strArr(2) = "Drei"
For N = LBound(strArr) To UBound(strArr)
MsgBox strArr(N)
Next N
End Sub


Gruß
Reinhard

AW: Array ?
07.10.2008 09:22:17
Snewi
OK Danke!
Und wenn ich aus einer Userform ein Textfeld 3 Werte abfragen möchte wie bei einer Passworteingabe?
Wie mache ich das?
Gruß
AW: Array ?
07.10.2008 09:27:00
Tino
Hallo,
da benötigst Du nur einen String, für was muss dieser aufgeteilt werden?
Gruß Tino
AW: Array ?
07.10.2008 09:30:00
Snewi
Es sollen mehrere Passwörter möglich sein die dann verschiedene Bereich freigeben oder sperren! Geht das?
Gruß
Anzeige
AW: Array ?
07.10.2008 09:38:06
Tino
Hallo,
musst Du Dir ein Trennzeichen ausdenken, im Beispiel benutze ich “-“
Dim MePass() As String, A As Integer
'in der TextBox steht Pass1-Pass2-Pass3 usw. 
MePass = Split(TextBox1.Text, "-")
For A = Lbound(MePass) To Ubound(MePass)
 MsgBox "Passwort" & A + 1 & ": " & MePass(A)
Next A


Gruß Tino

Anzeige
AW: Array ?
07.10.2008 09:46:26
Snewi
Hallo
nein ich meine nicht mehrere in die Textbox! Es soll schon nur eins eigegeben werden! Aber es sollen halt 3 zb möglich sein!
Wenn ich Passwort eins eingebe ist alles entsperrt bei Passwort zwei nur bestimmte Bereiche und bei Passwort drei auch nur bestimmte bereiche!
Wie kann ich das dem Textfeld beibringen?
Gruß
Passwortabfrage
07.10.2008 09:51:00
Reinhard
Hi Snewi,
vielleicht als Ansatz so: https://www.herber.de/bbs/user/55854.xls

Private Sub CommandButton1_Click()
Select Case TextBox1.Text
Case "eins"
MsgBox "Ber1 gesperrt" & Chr(13) & Chr(13) & "Ber2 und Ber3 entsperrt"
Case "zwei"
MsgBox "Ber2 gesperrt" & Chr(13) & Chr(13) & "Ber1 und Ber3 entsperrt"
Case "drei"
MsgBox "Ber3 gesperrt" & Chr(13) & Chr(13) & "Ber1 und Ber2 entsperrt"
Case Else
MsgBox "nix gesperrt"
End Select
End Sub


Gruß
Reinhard

Anzeige
AW: Array ?
07.10.2008 09:59:00
Tino
Hallo,
vieleicht so.
Private Sub CommandButton1_Click()
    Select Case TextBox1.Text 'Eingegebenes Passwort 
        Case "Pass1"
         Call Ensperre1
        Case "Pass2"
         Call Ensperre2
        Case "Pass3"
         Call Ensperre3
        Else
         MsgBox "Pass falsch!"
    End Select
End Sub


Anzeige
AW: Array ?
07.10.2008 12:24:06
Snewi
Würde das hier auch gehen?

  • Private Sub btnOk_Click()
    Dim WkS As Worksheet
    Set WkS = ThisWorkbook.Worksheets("Eingabe")
    WkS.Unprotect Password:="xx"
    WkS.Cells.Locked = True
    Select Case txtPasswort.Text
    Case "mh"
    WkS.Range("D13:N1264").Locked = False
    WkS.Range("N4,D5,F5").Locked = False
    Case "rro"
    WkS.Range("M13:M1264").Locked = False
    WkS.Range("N4,D5,F5").Locked = False
    Case ""
    WkS.Range("N4").Locked = False
    Case "as"
    WkS.Range("N4").Locked = False
    Else
    MsgBox "Passwort falsch!"
    Exit Sub
    End Select

  • Gruß
    Anzeige
    AW: Array ?
    07.10.2008 14:31:00
    Tino
    Hallo,
    sollte so funktionieren.
    Dim WkS As Worksheet
    Set WkS = ThisWorkbook.Worksheets("Eingabe")
    WkS.Unprotect Password:="xx"
    WkS.Cells.Locked = True
    Select Case txtPasswort.Text
        
        Case "mh"
          'dieser bereich wird freigegeben 
          WkS.Range("D13:N1264").Locked = False
          WkS.Range("N4,D5,F5").Locked = False
        
        Case "rro"
            'dieser bereich wird freigegeben 
            WkS.Range("M13:M1264").Locked = False
            WkS.Range("N4,D5,F5").Locked = False
        
        Case ""
            'dieser bereich wird freigegeben 
            WkS.Range("N4").Locked = False
        
        Case "as"
            'dieser bereich wird freigegeben 
            WkS.Range("N4").Locked = False
        
        Case Else
            MsgBox "Passwort falsch!"
        End Select
    WkS.Protect Password:="xx"
    


    Du muss Deine Tabelle am Ende wieder Schützen.
    Gruß Tino

    Anzeige
    AW: Array ?
    07.10.2008 14:47:00
    Snewi
    Hallo,
    irgendwie funktioniert es nicht wenn ich auf OK klicke bleibt die Userform so stehen und es wird nix gemacht!
    Gruß
    AW: Array ?
    07.10.2008 15:33:06
    Snewi
    Ich habe es jetzt genau wie du und es klappt!
    Wenn ich aber bei rro das Passwort eingebe soll ja nur der Bereich M13:M1267 nicht geschützt sein! Das ist solange der Fall bis ich in irgendeiner anderen Zelle klicke dann ist wieder alles frei woran liegt das?
    Gruß
    AW: Array ?
    07.10.2008 15:42:37
    Tino
    Hallo,
    ja war mein Fehler.
    mach bei Case Else noch diese Zeile mit rein
    WkS.Cells.Locked = False
    Gruß Tino
    Anzeige
    Quatsch
    07.10.2008 17:19:00
    Tino
    Hallo,
    habe die jetzt mal Durchgetestet.
    Dieser Beitrag ist Quatsch von mir, Locked bleibt ja auf True wenn keine andere Bedingung zutrifft.
    Aber bei mir werden die Zellen nicht Freigegeben durch den klick in eine andere Zelle?
    Sind bei Dir noch andere Event- Makros am laufen?
    Gruß Tino
    so am rande...
    07.10.2008 15:56:49
    Tino
    Hallo,
    wollte ich Dir noch den Tipp geben, schau Dir mal unter
    Extras- Schutz – Benutzer dürfen Bereich Bearbeiten…
    die Optionen an.
    Sollte dies keine Option für Dich sein, vergiss es einfach.
    Gruß Tino
    AW: so am rande...
    08.10.2008 08:57:00
    Snewi
    Hallo Tino,
    sorry war mein Fehler hatte in einem Selection_Change Ereigniss Die Zellen entsperrt aber nicht wieder gesperrt und deswegen hat er immer alles entsperrt!
    Danke trotzdem klappt nun wunderbar :-)
    Gruß
    Anzeige
    Nicht mehr offen oT
    08.10.2008 16:02:00
    Henner
    .
    AW: Array ?
    07.10.2008 09:11:00
    fcs
    Hallo Snewi,
    hier 2 Möglichkeiten.
    Möglichkeit 1: dimensioniertes Array vom Typ String
    Möglichkeit 2: Variable vom Typ Variant, der ein Array mit den Werten zugewiesen wird.
    Gruß
    Franz
    
    Sub aaTest()
    Dim arrDaten(0 To 2) As String, intI As Integer
    'Arraydaten zuweisen
    arrDaten(0) = "1"
    arrDaten(1) = "2"
    arrDaten(2) = "3"
    'Arraydaten anzeigen
    For intI = LBound(arrDaten) To UBound(arrDaten)
    MsgBox intI & ". Wert: " & arrDaten(intI)
    Next
    End Sub
    Sub aaTest1()
    Dim arrDaten, intI As Integer
    'Arraydaten zuweisen
    arrDaten = Array("1", "2", "3")
    'Arraydaten anzeigen
    For intI = LBound(arrDaten) To UBound(arrDaten)
    MsgBox intI & ". Wert: " & arrDaten(intI)
    Next
    End Sub
    


    Anzeige

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige