Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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
GELÖST

Excel 2003 Vba Schleife über Matrix

Frage Microsoft Microsoft Office

Mitglied: Dudelidude

Dudelidude (Level 1) - Jetzt verbinden

28.07.2011 um 09:29 Uhr, 4244 Aufrufe, 8 Kommentare

Hallo liebes Forum!Gut das es schon Donnerstag ist!

Ich habe folgendes Problem.Ich will um eine Übersetzung in meinem Tool anzulegen Zellen mit dem TranslationTable sheet verknüpfen! Dazu möchte ich eine Schleife benutzen,
die diesen Bezug für mich in die jeweilige Zelle schreibt. Ich habe schon einen funktionierenden Code gebastelt, der allerdings nur über eine Spalte läuft. Ich würde aber gern, dass die Spallte von B1 bis Z 200 läuft. Vielleicht kann ja jemand den Code so anpassen, dass es geht.

Sub Bezug()

Dim i

For i = 1 To 200

Sheets("ProjectStructure").Select
Range("D" & i).Select

If ActiveCell.Value = "Mr/s" Then
ActiveCell.Value = "='Translation Table'!A159"
End If
If ActiveCell.Value = "First Name" Then
ActiveCell.Value = "='Translation Table'!A160"
End If
If ActiveCell.Value = "Surname" Then
ActiveCell.Value = "='Translation Table'!A161"

End If

Next i


End Sub
Mitglied: TsukiSan
28.07.2011 um 09:42 Uhr
du kannst es folgendermaßen mit 2 Schleifen aufbauen. Hier was zum testen:
01.
 For a = 66 To 90 
02.
    For i = 1 To 200 
03.
        Range(Chr(a) & i).Select 
04.
          ' hier deine IFs rein..... 
05.
    Next i 
06.
 Next a
die Schleife a gibt dir (CHR vorangestellt) die Zeichen aus dem ASCII-Code und die Schleife i drinnen die Breiche (1 bis 200).

Gruss
Tsuki
Bitte warten ..
Mitglied: bastla
28.07.2011 um 10:25 Uhr
@Tsuki
Anstelle von "Range()" würde sich aber eher "Cells()" aufdrängen - dann sind auch keine Kunststücke mit dem Zusammenbauen der Zelladresse (ab "AA" würde es noch lustiger) erforderlich ...

Als Altenative (je nachdem, was ev noch passieren soll) vielleicht auch ein
For Each Zelle In Range("B1:Z200")
@Dudelidude
01.
Sheets("ProjectStructure").Select 
02.
Range("D" & i).Select 
03.
 
04.
If ActiveCell.Value = "Mr/s" Then
lässt sich auch ohne "Select" umsetzen:
01.
With Sheets("ProjectStructure").Range("D" & i) 
02.
    If .Value = "Mr/s" Then 
03.
    .... 
04.
End With
wobei ich aber, wie oben erwähnt, "Cells" verwenden würde:
With Sheets("ProjectStructure").Cells(i, "D")
Anstelle des Buchstabens kannst Du auch die Nummer der Spalte verwenden (für Schleifen vorteilhaft):
With Sheets("ProjectStructure").Cells(i, 4)
Einen hab ich noch:
Wenn ein Wert auf mehrere Bedingungen geprüft werden soll, kannst Du "Select Case" verwenden - also etwa:
01.
Select Case .Value 
02.
Case "Mr/s" 
03.
    .Value = "='Translation Table'!A159" 
04.
Case "First Name" 
05.
    .Value = "='Translation Table'!A160" 
06.
Case "Surname" 
07.
    .Value = "='Translation Table'!A161" 
08.
End Select
Grüße
bastla
Bitte warten ..
Mitglied: TsukiSan
28.07.2011 um 12:20 Uhr
hallo bastla,

schon klar, dass es ab Doppelbuchstaben lustiger wird.
Da der TO aber definitiv schrieb
, dass die Spallte von B1 bis Z 200 läuft.
war mein Gedanke halt obiger auf die Schnelle.
Die Select Case Methode in seinem Fall macht das ganze optisch noch sauberer. Dem stimme ich auch zu.

Danke und Grüße

Tsuki
Bitte warten ..
Mitglied: bastla
28.07.2011 um 13:56 Uhr
@Tsuki
Never mind - Du hast Dich stärker an der Vorgabe des TO (inkl seines Ansatzes mit "Range("D" & i).Select") orientiert, während ich das etwas stärker verallgemeinern wollte ...

Grüße
bastla
Bitte warten ..
Mitglied: TsukiSan
28.07.2011 um 23:19 Uhr
Hallo bastla,

siehst du - und während wir beide etwas am fachsimpeln sind, hat der TO schon ein grünes Häkchen gesetzt
Super Arbeit!

Viele Grüße

Tsuki
Bitte warten ..
Mitglied: bastla
29.07.2011 um 09:58 Uhr
Hallo Tsuki!
hat der TO schon ein grünes Häkchen gesetzt
... was immer noch (knapp) besser ist, als gar kein Feedback ...

Grüße
bastla
Bitte warten ..
Mitglied: Dudelidude
29.07.2011 um 11:17 Uhr
Hey Leute,

sorry aber ich dachte ich hatte mich schon bedankt. Jedenfalls nochmal vielen Dank für eure schnelle und kompetente Hilfe.
Liebe Grüße!

TGI Friday!
Bitte warten ..
Mitglied: bastla
29.07.2011 um 11:27 Uhr
Hallo Dudelidude!

Danke für's Bedanken - es geht aber mehr darum, für ev andere Hilfesuchende deutlich zu machen, dass ein (bzw welcher) Ansatz funktioniert hat ...

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
VB for Applications
Excel VBA Sortierung von Daten (5)

Frage von easy4breezy zum Thema VB for Applications ...

Microsoft Office
gelöst Excel-Formel oder VBA (7)

Frage von nicki01 zum Thema Microsoft Office ...

VB for Applications
gelöst Excel VBA Eine oder mehrere Zellen Verschieben (2)

Frage von batchnewbie zum Thema VB for Applications ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...