Top-Themen

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

Mitglied: Hummel85

Hummel85 (Level 1) - Jetzt verbinden

10.11.2006, aktualisiert 23.11.2006, 8723 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
Microsoft Office
Excel VBA Wert hochzählen
gelöst Frage von Florian86Microsoft Office1 Kommentar

Hallo, ich habe im VBA Code folgendes stehen Range("E10") = Range("E10") + 1 Jetzt ist der Wert bei schon ...

Batch & Shell

CMD: Suchen, Ersetzen und Hochzählen

gelöst Frage von ralfkauskBatch & Shell3 Kommentare

Hallo zusammen Ich habe folgendes Problem In einer Datei muss ein Wert gefunden, auf Korrektheit geprüft und evtl. ersetzt/geändert ...

Batch & Shell

Nach Muster von Dateien, diese hochzählen

gelöst Frage von Erik72Batch & Shell12 Kommentare

Hallo zusammen, die führenden Nullen-Aufgabe von heute morgen habe ich so gelöst: #!/bin/sh x=1 for fname in /Verzeichnis/*.abc do ...

Batch & Shell

Powershell: Variabelnamen in einer Schleife hochzählen lassen

gelöst Frage von oegi99Batch & Shell3 Kommentare

Ich arbeite im Moment an einem Script um Active Directory Benutzer automatisch aus einem csv File auszulesen und zu ...

Neue Wissensbeiträge
Backup

2016 - Restore mit WBAdmin - iSCSI Device als Sicherungsziel

Erfahrungsbericht von Henere vor 2 TagenBackup1 Kommentar

Servus zusammen, was mich eben einige graue Haare gekostet hat Server 2016. Ich habe meinem Server eine weitere M2 ...

Humor (lol)
(Part num your Hacked phone. +XX XXXXXX5200)
Erfahrungsbericht von Henere vor 4 TagenHumor (lol)10 Kommentare

Mein Handy hat aber ne ganz andere Endnummer. Muss ich mir jetzt Sorgen machen ? :-) Vielleicht betrifft es ...

Exchange Server

Letztes Update für Exchange 2016 CU9 war in gewisser Weise destruktiv

Erfahrungsbericht von DerWoWusste vor 4 TagenExchange Server9 Kommentare

Kurzer Erfahrungsbericht zu Exchange2016-KB4340731-x64 Der Exchangeserver hat wie gewöhnlich versucht, es in der Nacht automatisch zu installieren - abgesehen ...

Erkennung und -Abwehr

Neue Sicherheitslücke Foreshadow (L1TF) gefährdet fast alle Intel-Prozessoren

Information von Frank vor 5 TagenErkennung und -Abwehr3 Kommentare

Eine neue Sicherheitslücke, genannt Foreshadow (alias L1TF) wurde auf der Usenix Security 18 von einem Team internationaler Experten veröffentlicht. ...

Heiß diskutierte Inhalte
E-Mail
Deutsche e-Mail Adresse auf iPhone in Katar. Nur Probleme
gelöst Frage von vanTastE-Mail32 Kommentare

Moin, ich habe hier in Deutschland auf einem Exchange 2013 eine e-Mail Adresse (name@domain.de) für einen Kollegen in Katar ...

Windows Server
Domäne beitreten nicht möglich, unter VMWare windows Server 2016 Core
Frage von AmanuelWindows Server21 Kommentare

Ich habe auf meinem Mac unter VMWare Windows Server 2016 Core und Windows Server 2016 Desktopversion installiert. Beide Systeme ...

Windows Server
Server verliert Dateien und Ordner
gelöst Frage von routeserverWindows Server18 Kommentare

Hallo Freunde, ich habe hier ein Problem, das mich an meine Grenzen treibt und ich würde gerne wissen, ob ...

Windows Tools
User Self Service und Client Management
Frage von OrkansonWindows Tools14 Kommentare

Hallo zusammen, ich hab ein paar verschiedene Fragen: 1. Was benutzt ihr um Software im Unternehmen zu verteilen? 2. ...