PDA

Vollständige Version anzeigen : Exel 2003 - Abhängigkeiten


wanderratte
04.05.2009, 09:31
Hello again :),

ich habe in einer Tabelle (Spalte A) Namen drin stehen, diese haben ein bestimmtes Namensmuster (XX1D , XX3D sowie XX164D und XX165D).

Nun möchte ich gerne das in Spalte S (ab S2) in Abhängigkeit vom Eintrag in der A Spalte ein Eintrag verfasst wird

Beispiel
XX1D --> XP
XX3D --> XP
XX164D --> XP64
XX165D --> XP64

Das ganze sollte "automatisch" passieren, das heißt bei einem Eintrag in Excel soll er Spalte S automatisch aktualisieren.

Wie immer bin ich für jede Hilfe dankbar :)

Backowe
04.05.2009, 09:43
Hi Max,

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Private Sub</span> Worksheet_Change(<span class="TOKEN">ByVal</span> Target <span class="TOKEN">As</span> Range)
<span class="REM">'Code in das entsprechende Tabellenblatt</span>
<span class="TOKEN">If</span> <span class="TOKEN">Not</span> Intersect(Target, Columns(1)) <span class="TOKEN">Is</span> <span class="TOKEN">Nothing</span> <span class="TOKEN">And</span> Target.Count = 1 <span class="TOKEN">Then</span>
<span class="TOKEN">If</span> LCase(Target) = &quot;xx1d&quot; <span class="TOKEN">Or</span> LCase(Target) = &quot;xx3d&quot; <span class="TOKEN">Then</span>
Cells(Target.Row, &quot;S&quot;) = &quot;XP&quot;
<span class="TOKEN">ElseIf</span> LCase(Target) = &quot;xx164d&quot; <span class="TOKEN">Or</span> LCase(Target) = &quot;xx165d&quot; <span class="TOKEN">Then</span>
Cells(Target.Row, &quot;S&quot;) = &quot;XP64&quot;
<span class="TOKEN">Else</span>
Cells(Target.Row, &quot;S&quot;) = &quot;&quot;
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
<span class="TOKEN">End</span> <span class="TOKEN">Sub</span></pre></div>
Code eingefügt mit dem MOF Code Converter (http://www.ms-office-forum.net/forum/codeconverter.php)

wanderratte
04.05.2009, 09:50
Vielen Dank,

gilt das auch bei namen wenn diese mit
XX1DFFFF weitergehen (hier F)

Also hinten noch weiter gehen nur halt vorne alles gleich ist

(habe den code nun bei VB in den Bereich "Allgemein" bei Tabelle1 eingefügt)

Backowe
04.05.2009, 09:55
Hi Max,

hier die kleine Änderung. Der Code kommt in die Tabelle und nicht in ein Modul.
Rechte Maustaste auf den Tabellenreiter und Code anzeigen auswählen.

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Private Sub</span> Worksheet_Change(<span class="TOKEN">ByVal</span> Target <span class="TOKEN">As</span> Range)
<span class="REM">'Code in das entsprechende Tabellenblatt</span>
<span class="TOKEN">If</span> <span class="TOKEN">Not</span> Intersect(Target, Columns(1)) <span class="TOKEN">Is</span> <span class="TOKEN">Nothing</span> <span class="TOKEN">And</span> Target.Count = 1 <span class="TOKEN">Then</span>
<span class="TOKEN">If</span> LCase(Left(Target, 4)) = &quot;xx1d&quot; <span class="TOKEN">Or</span> LCase(Left(Target, 4)) = &quot;xx3d&quot; <span class="TOKEN">Then</span>
Cells(Target.Row, &quot;S&quot;) = &quot;XP&quot;
<span class="TOKEN">ElseIf</span> LCase(Left(Target, 6)) = &quot;xx164d&quot; <span class="TOKEN">Or</span> LCase(Left(Target, 6)) = &quot;xx165d&quot; <span class="TOKEN">Then</span>
Cells(Target.Row, &quot;S&quot;) = &quot;XP64&quot;
<span class="TOKEN">Else</span>
Cells(Target.Row, &quot;S&quot;) = &quot;&quot;
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
<span class="TOKEN">End</span> <span class="TOKEN">Sub</span></pre></div>
Code eingefügt mit dem MOF Code Converter (http://www.ms-office-forum.net/forum/codeconverter.php)

wanderratte
05.05.2009, 07:01
Ok, ist die "Stelle" wo das ganze rein kommt im Code egal?

oder sollte dies am Anfang sein?


kleine frage nebenbei, was bedeutet:
\c$\ `?

Backowe
05.05.2009, 08:23
Hi Max,

wo soll denn "\c$\ `?" stehen?

Also bei mir sieht es nach dem Einfügen des Codes so aus:

wanderratte
05.05.2009, 08:55
Danke =)
mit c$ hat sich erledigt xD verlesen

Ich habe mal ne weiter frage, habe nun eine Pfadabfrage erstellt
Dim DateiPfad As String
Dim Befehl As String
Dim File_Copy

DateiPfad = "\\" & ActiveCell.Value & "C:\Program Files (x86)\....."
If ExistFolder(DateiPfad) Then
' "64 Bit OS"
FileCopy "C:\Program Files (x86)\....", "\\" & ActiveCell.Value & "\c$\WINNT\system32\....."
Befehl = "C:\Program Files (x86)\......-c: -h: -m:" & ActiveCell.Value
Ergebnis = Shell(Befehl, vbNormalNoFocus)
MsgBox "64BitOS", vbCritical, "Programm konnte nicht gestartet werden !"
Else
' "32 Bit OS"
FileCopy "C:\Program Files\.....", "\\" & ActiveCell.Value & "\c$\WINNT\system32\......"
Befehl = "C:\Program Files\.....-c: -h: -m:" & ActiveCell.Value
Ergebnis = Shell(Befehl, vbNormalNoFocus)
End If

Woran kann das liegen dass das ganze nicht funktioniert?

...= Datei bzw Ordner

Backowe
05.05.2009, 09:10
Hi Max,

erstelle bitte einen neuen Thread, ich kann Deinen Code nicht testen, da ich z. Z. kein 64 Bit Windows und kein Netzwerk zum testen der UNC-Pfade zur Verfügung habe, ausser SuSE 11.1 und da funktioniert Dein Code nicht! ;)

wanderratte
05.05.2009, 10:19
Danke Jürgen =)


Bereits gemacht und Hilfe bekommen, total dufte hier ;)