Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Variable Hochzählen

Frage Microsoft Microsoft Office

Mitglied: Hummel85

Hummel85 (Level 1) - Jetzt verbinden

10.11.2006, aktualisiert 23.11.2006, 8630 Aufrufe, 9 Kommentare

Der Titel ist nicht sehr gut gewählt aber mir fällt da immer nicht viel ein.

Guten Morgen,

ich bin schon wieder fast am verzweifeln. Ich denke mir immer es muss doch gehen aber mir fehlt absolut der Denkansatz.

Also ich möchte, eine bestimmte Anzahl von Zellen auslesen. Diese in eine Variable speichern aber nur wenn der wert nicht schon existiert.

Um das ganze zu verdeutlichen. Ich habe sagen wir mal 200 Zellen. Wo 30 verschieden werte vorkommen( Buchstaben und Zahlen). ich möchte jetzt alle werte auslesen und diese in einer variable speichern. Aber nur wenn diese noch nicht gespeichert wurde. Wie ich werte auslesen kann und diese speichern kann weiß ich schon. Mein Problem ist nur. Wie kann ich den:

1. wenn ich ein wert in einer Variable gespeichert habe einfach die Variable Hochzählen?
( bsp. txt_1 , txt_2 , txt_3 .......)

2. wenn ich den von mir aus schon 20 werte gespeichert habe kontrollieren ob der nächste wert nicht schon existiert. Wie gesagt ich habe z.b. 200 Zellen mit werten und 30 davon sind unterschiedlich. Ich möchte eine liste mit txt_1 - txt_30.

3. die erstellten variablen global dimensionieren. so das ich diese in einem Formular ausgeben lassen kann.

So ich hoffe ihr habt alles verstanden und könnt mir helfen.
Mitglied: bastla
10.11.2006 um 10:15 Uhr
Hallo Hummel85!

Vielleicht fangen wir am anderen Ende an: Was machst Du dann konkret mit den Ergebnissen in der (den) Variable(n)?

Grüße
bastla
Bitte warten ..
Mitglied: Hummel85
10.11.2006 um 10:33 Uhr
Also ich möchte diese z.b. 30 variablen in einem Formular ausgeben( in einem Bezeichnungsfeld) mit Textfeld daneben. Dann kann jeder die Übersetzung eintragen. Es geht darum das ich ini Dateien erzeuge und die Excel Tabelle ist in deutsch. Die Excel Datei darf auch nicht verändert werde. Also habe ich mir überlegt dass wenn jemand die Ini Datei auf Englisch haben möchte, er diese auch übersetzen muss. Eine Statische Übersetzung kommt nicht in Frage weil es zu viel Aufwand währe das Makro dann zu pflegen, das kann sich ja wöchentlich ändern.

Ich hoffe das reicht an Infos.

Gruß Sebastian
Bitte warten ..
Mitglied: bastla
10.11.2006 um 10:45 Uhr
Hallo Sebastian!

Auf die Schnelle das Einlesen ohne Duplikate in ein Array:
01.
Option Explicit 
02.
 
03.
Sub GetUnique() 
04.
Dim oCell As Object 
05.
Dim sErg(100) As String 
06.
Dim i As Integer, j As Integer 
07.
Dim bNeu As Boolean 
08.
Dim sWert As String 
09.
 
10.
i = 0 
11.
For Each oCell In Range("B1:B200") 
12.
    bNeu = True 
13.
    sWert = oCell.Value 
14.
    For j = 1 To i 
15.
        If sWert = sErg(j) Then 
16.
            bNeu = False 
17.
            Exit For 
18.
        End If 
19.
    Next 
20.
    If bNeu Then 
21.
        i = i + 1 
22.
        sErg(i) = sWert 
23.
    End If 
24.
Next 
25.
End Sub
Ist noch etwas statisch (maximal 100 Ergebniseinträge, Datenbereich B1:B200), aber ich hoffe, Du siehst das Prinzip. Die Ergebniseinträge sErg(1) bis sErg(100) können dann in weiterer Folge den Formularfeldern zugeordnet werden.

Grüße
bastla
Bitte warten ..
Mitglied: Hummel85
10.11.2006 um 11:17 Uhr
Ich werde das mal probieren und auf meine Bedürfnisse anpassen.

Ich werde versuchen das bis montag auf meine Bedürfnisse anzupassen. Und mich dann wieder melden. Was dann noch wichtig ist alle diese Variablen Global zu Dimensionieren so das ich die dann in einem Formular verwenden kann. Und das das Formular Dynamisch ist. Also wenn ich 20 Variablen habe dann auch 20 Felder in einem Formular.
Bitte warten ..
Mitglied: bastla
13.11.2006 um 08:42 Uhr
Hallo Sebastian!

Um eine Userform mit allen Begriffen als Labels und je einer zugeordneten Textbox zu befüllen, könntest Du etwa so vorgehen:
01.
Option Explicit 
02.
Dim Lb() As Control, Tx() As Control 
03.
 
04.
Private Sub CommandButton1_Click() 
05.
Dim oCell As Object 
06.
Dim sErg(100) As String 
07.
Dim i As Integer, j As Integer 
08.
Dim bNeu As Boolean 
09.
Dim sWert As String 
10.
 
11.
i = 0 
12.
For Each oCell In Range("B1:B200") 
13.
    bNeu = True 
14.
    sWert = oCell.Value 
15.
    For j = 1 To i 
16.
        If sWert = sErg(j) Then 
17.
            bNeu = False 
18.
            Exit For 
19.
        End If 
20.
    Next 
21.
    If bNeu Then 
22.
        i = i + 1 
23.
        sErg(i) = sWert 
24.
 
25.
        'Userform anpassen und ergänzen 
26.
        Me.Height = i * 20 + 40 
27.
        ReDim Preserve Lb(i) As Control, Tx(i) As Control 
28.
        Set Lb(i) = Controls.Add("Forms.Label.1", "lbl_" & CInt(i), True) 
29.
        With Lb(i) 
30.
            .Top = i * 20 + 2 
31.
            .Left = 10 
32.
            .Width = 58 
33.
            .Height = 12 
34.
            .Caption = sWert 
35.
        End With 
36.
     
37.
        Set Tx(i) = Controls.Add("Forms.TextBox.1", "txt_" & CInt(i), True) 
38.
        With Tx(i) 
39.
            .Top = i * 20 + 0 
40.
            .Left = 70 
41.
            .Width = 150 
42.
            .Height = 15 
43.
            .Text = "noch leer" 
44.
        End With 
45.
    End If 
46.
Next 
47.
End Sub
Mit der Platzierung / Größe der Objekte musst Du sicher noch experimentieren, ebenso mit der Anordnung in ev mehreren Spalten (lässt sich aus der laufenden Nummer i ableiten).

Die Variablen sErg(i) kannst Du auch durch "Lb(i).Caption" ersetzen.

Grüße
bastla
Bitte warten ..
Mitglied: Hummel85
15.11.2006 um 10:55 Uhr
Danke für deine Hilfe nur leider kann ich auf Arbeit momentan damit nicht weiter arbeiten. Aber ich werde das zu Hause ausgiebig testen. Soweit ich dafür die Zeit finde.

Gruß Hummel
Bitte warten ..
Mitglied: Hummel85
16.11.2006 um 13:03 Uhr
Also ich bin gerade dazu gekommen das Makro mal zu Testen. Es läuft fast genau so wie ich es haben will.

Ich brauch nur noch 2 Schnipsel.

1. Wenn der Inhalt der Zelle "-" oder die Zelle lehr ist soll dies nicht in der Ausgabe
auftauchen.

2. Und wie kann ich am ende noch 2 Buttons einfügen "OK" und "cancel".

Wo ich das einfüge müsste ich dann auch noch wissen.

Wenn ich das habe bin ich eigentlich wunschlos glücklich.


Danke im Voraus.
Bitte warten ..
Mitglied: bastla
16.11.2006 um 13:42 Uhr
Hallo Sebstian!

zu 1.
01.
sWert = oCell.Value '***ab hier neu*** 
02.
If sWert = "-" Or sWert ="" Then 
03.
	bNeu = False 
04.
Else 
05.
	For j = 1 To i 
06.
		If sWert = sErg(j) Then 
07.
			bNeu = False 
08.
			Exit For 
09.
		End If 
10.
	Next 
11.
End If '***ab hier wieder alt*** 
12.
If bNeu Then
zu 2.
Die Buttons würde ich an den Anfang der Userform stellen.
Vorteil: Du kannst Sie, unabhängig davon, wie viele Einträge unten folgen werden, bereits in der Entwurfsansicht einfügen und den entsprechenden Code dazu schreiben. Den Platz dafür hatte ich ohnehin bereits vorgesehen. Sollte er nicht reichen, einfach folgende Änderungen durchführen:
01.
Me.Height = i * 20 + 80 'statt 40 
02.
... 
03.
With Lb(i) 
04.
    .Top = i * 20 + 42 'statt 2 
05.
... 
06.
With Tx(i) 
07.
    .Top = i * 20 + 40 'statt 0
Grüße
bastla
Bitte warten ..
Mitglied: Hummel85
23.11.2006 um 10:29 Uhr
Hallo bastla,

vielen dank noch mal für deine Hilfe. Es funktioniert jetzt alles so wie ich das will.

Mit diesem Makro bin ich vorerst fertig.

Ich setze diesen Beitrag als auf gelöst.

Gruß Sebastian
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Nach Muster von Dateien, diese hochzählen (12)

Frage von Erik72 zum Thema Batch & Shell ...

Batch & Shell
gelöst Mit zusammengesetzter Variable auf andere Variable zugreifen (2)

Frage von abiber zum Thema Batch & Shell ...

Batch & Shell
gelöst Variable in Regedit (3)

Frage von MeinSenfDazu zum Thema Batch & Shell ...

Batch & Shell
gelöst Grosses Variablen Problem ( Batch) (30)

Frage von clragon zum Thema Batch & Shell ...

Neue Wissensbeiträge
Ubuntu

Ubuntu 17.10 steht zum Download bereit

(3)

Information von Frank zum Thema Ubuntu ...

Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(8)

Information von BassFishFox zum Thema Datenschutz ...

Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

(8)

Information von thomasreischer zum Thema Windows 10 ...

Microsoft

Die neuen RSAT-Tools für Win10 1709 sind da

(2)

Information von DerWoWusste zum Thema Microsoft ...

Heiß diskutierte Inhalte
Monitoring
Netzwerk-Monitoring Software (18)

Frage von Ghost108 zum Thema Monitoring ...

Windows 10
Seekrank bei Windows 10 (17)

Frage von zauberer123 zum Thema Windows 10 ...

Windows Server
gelöst Kopiervorgang schlägt fehl, weil Datei- und Ordnername zu lang sind (14)

Frage von Schroedi zum Thema Windows Server ...

Windows 10
Windows 10 Fall Creators Update Fehler (13)

Frage von ZeroCool23 zum Thema Windows 10 ...