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

VBA Excel Skript - Hilfe!

Frage Entwicklung VB for Applications

Mitglied: 133202

133202 (Level 1)

19.05.2017, aktualisiert 21:03 Uhr, 430 Aufrufe, 1 Kommentar

Hallo Ihr,

leider habe Schwierigkeiten bei einem alten VBA Skript. Ich habe es mal für Excel in der Schule erstellt, vor Jahren. Daher weiß ich leider nicht mehr genau, was es genau macht. Kann mir wer helfen,und sagen,was es macht?

01.
 
02.
Public Sub Ausführen(control As IRibbonControl) 
03.
Dim variableI As Long 
04.
Dim variableX As Long 
05.
Dim variableN As Long 
06.
Dim i As Long 
07.
Dim x As Long 
08.
Dim varI As Long 
09.
Dim varX As Long 
10.
ActiveSheet.Name = "Adressen067" 
11.
 
12.
Dim wb As Workbook 
13.
Set wb = Workbooks.Add 
14.
wb.SaveAs Filename:="C:\Test\NeueAdressen.xlsx" 
15.
'Workbooks("NeueAdressen3.xlsx").Close 
16.
Workbooks("adress.xls").Activate 
17.
variableX = Cells(Rows.Count, 23).End(xlUp).Row 
18.
variableN = 2 
19.
'Workbooks.Open ("NeueAdressen3.xlsx") 
20.
Rows(1).Copy Destination:=Workbooks("NeueAdressen.xlsx").Worksheets("Tabelle1").Rows(1) 
21.
For variableI = 2 To variableX 
22.
     
23.
        If Cells(variableI, 23) <> "" Then 
24.
             
25.
            Rows(variableI).Cut Destination:=Workbooks("NeueAdressen.xlsx").Worksheets("Tabelle1").Rows(variableN) 
26.
            variableN = variableN + 1 
27.
         
28.
        End If 
29.
Next variableI 
30.
Workbooks("NeueAdressen.xlsx").Activate 
31.
Dim variI 
32.
Dim variX 
33.
Cells(1, 23).ClearContents 
34.
variX = Cells(Rows.Count, 23).End(xlUp).Row 
35.
For variI = 2 To variX 
36.
    If Cells(variI, 22) <> "" Then 
37.
        Cells(variI, 22) = Cells(variI, 22) & " " & Cells(variI, 23) 
38.
        Cells(variI, 23).ClearContents 
39.
        Range(Cells(variI, 22), Cells(variI, 23)).Merge 
40.
    End If 
41.
Next variI 
42.
Columns(22).AutoFit 
43.
Dim vI 
44.
Dim vX 
45.
vX = Cells(Rows.Count, 31).End(xlUp).Row 
46.
Range("AF1") = "Neu?" 
47.
For vI = 2 To vX 
48.
    If Cells(vI, 32) = "" Then 
49.
        Range("AF" & vI) = "1" 
50.
    End If 
51.
Next vI 
52.
Workbooks("NeueAdressen.xlsx").Close 
53.
'End With 
54.
x = Cells(Rows.Count, 31).End(xlUp).Row 
55.
For i = x To 2 Step -1 
56.
     
57.
        If Cells(i, 31) = "" Then 
58.
  
59.
            Rows(i).Delete Shift:=xlUp 
60.
    
61.
        End If 
62.
     
63.
Next i 
64.
'ThisWorkbook.Sheet("adress01").Select 
65.
varX = Cells(Rows.Count, 31).End(xlUp).Row 
66.
Range("AF1") = "Gesperrt09" 
67.
For varI = 2 To varX 
68.
    If Cells(varI, 32) = "" Then 
69.
        Range("AF" & varI) = "1" 
70.
    End If 
71.
Next varI 
72.
End Sub 
73.
 
Gruß
Mitglied: 132895
LÖSUNG 20.05.2017, aktualisiert um 09:54 Uhr
Tja, hätte man seinen Code kommentiert ;-P...
Zitat von 133202:
Public Sub Ausführen(control As IRibbonControl)
Dim variableI As Long
Dim variableX As Long
Dim variableN As Long
Dim i As Long
Dim x As Long
Dim varI As Long
Dim varX As Long
Variablen definieren, hoffentlich verstehst du das wenigstens noch .

ActiveSheet.Name = "Adressen067"
Benennt das aktive Sheet um.

Dim wb As Workbook
Set wb = Workbooks.Add
wb.SaveAs Filename:="C:\Test\NeueAdressen.xlsx"
Legt eine neue Arbeitsmappe an und speichert sie.

Workbooks("adress.xls").Activate
Aktiviert das Sheet mit dem Namen adress.xls.
variableX = Cells(Rows.Count, 23).End(xlUp).Row
Ermittelt die letzte belegte Zelle in Spalte 23 und speichert die Zeilennummer in der Variablen "variableX"
variableN = 2
Rows(1).Copy Destination:=Workbooks("NeueAdressen.xlsx").Worksheets("Tabelle1").Rows(1)
Kopiert die ganze erste Zeile des aktiven Sheets in das Workbook NeueAdressen.xlsx in Tabelle1.
For variableI = 2 To variableX

If Cells(variableI, 23) <> "" Then

Rows(variableI).Cut Destination:=Workbooks("NeueAdressen.xlsx").Worksheets("Tabelle1").Rows(variableN)
variableN = variableN + 1

End If
Next variableI
Durchläuft alle Zellen von Zeile 2 bis zu ermittelten letzten belegten Zelle in Spalte 23 und prüft ob die Zelle nicht leer ist. Wenn ja dann kopiert es diese ganze Zeile ebenfalls in das Workbook NeueAdressen.xlsx untereinander.
Workbooks("NeueAdressen.xlsx").Activate
Aktiviert das angegebene Workbook
Dim variI
Dim variX
Cells(1, 23).ClearContents
Löscht den Inhalt von Zelle 1 in Spalte 23.
variX = Cells(Rows.Count, 23).End(xlUp).Row
Ermittelt erneut die letzte belegte Zelle in Spalte 23.
For variI = 2 To variX
If Cells(variI, 22) <> "" Then
Cells(variI, 22) = Cells(variI, 22) & " " & Cells(variI, 23)
Cells(variI, 23).ClearContents
Range(Cells(variI, 22), Cells(variI, 23)).Merge
End If
Next variI
Durchläuft erneut mit der Schleife alle Zellen, prüft ob Spalte 22 nicht leer ist, und wenn ja kombinier es den Inhalt von Spalte 22 und 23 und setzt den Inhalt in Spalte 22, löscht dann den Inhalt von Spalte 23, und macht die Spalten 22 und 23 zu einer einzigen Zelle.
Columns(22).AutoFit
Passt die Spaltenbreite der Spalte 22 automatisch an die Inhalte an.
Dim vI
Dim vX
vX = Cells(Rows.Count, 31).End(xlUp).Row
Wieder Ermittlungen der letzten Zelle in Spalte 31
Range("AF1") = "Neu?"
For vI = 2 To vX
If Cells(vI, 32) = "" Then
Range("AF" & vI) = "1"
End If
Next vI
Durchlaufe wieder mit Schleife alle Zellen von 2 bis Ende Spalte 31, wenn dabei Spalte 32 leer ist setze den Inhalt von AFx (x = aktuelle Zeile der Schleife) auf 1.
Workbooks("NeueAdressen.xlsx").Close
Schließe das Workbook.
x = Cells(Rows.Count, 31).End(xlUp).Row
For i = x To 2 Step -1

If Cells(i, 31) = "" Then

Rows(i).Delete Shift:=xlUp

End If

Next i
Durchlaufe mit Schleife alle Zellen von Ende Spalte 31 bis Zeile 2, diesmal rückwärts, wenn dabei Spalte 31 leer ist lösche die ganze Zeile.

varX = Cells(Rows.Count, 31).End(xlUp).Row
Range("AF1") = "Gesperrt09"
Setze Inhalt von AF1 auf "Gesperrt09"
For varI = 2 To varX
If Cells(varI, 32) = "" Then
Range("AF" & varI) = "1"
End If
Next varI
End Sub
Durchlaufe wieder mit Schleife (wird langsam eintönig) alle Zellen von Zeile 2 bis Ende Spalte 31, wenn dabei Spalte 32 leer ist setze den Inhalt von AFx (x = aktuelle Zeile der Schleife) auf 1.

Habe fertig, nu bist du am Zug deine VBA Kenntnisse wieder auf den aktuellen Stand zu bringen.

Gruß
Bitte warten ..
Ähnliche Inhalte
VB for Applications
Hilfe zur VBA Excel gesucht
gelöst Frage von rocco61VB for Applications13 Kommentare

Hallo zusammen, leider bin ich seit 2003 also 13 j aus der Programmierung draussen. Daher hoffe ich das mir ...

VB for Applications
VBA Macro Hilfe benötigt
gelöst Frage von reissaus73VB for Applications6 Kommentare

Ich habe eine Frage zu einem Macro. Und zwar habe ich in einer Excel Datei folgende Spalten A Incident ...

Ubuntu
Hilfe für einfachen Skript
gelöst Frage von suppenTanteUbuntu3 Kommentare

Hallo Experten, ich bin eine komplette Anfängerin und brauche Eure Hilfe! Das Skript sollte einfach eine E-Mail versenden mit ...

Windows 10
Hilfe beim Batch Skript
gelöst Frage von WinLiCLIWindows 1013 Kommentare

Hallo zusammen, ich möchte gerne ein Skript schreiben das folgendes macht: Wenn WindowsBuildNumber 10.0.10586 oder 10.0.14393 enthält, dann führe ...

Neue Wissensbeiträge
Microsoft

Update KB4073578 für AMD CPU (Spectre und Meltdown Lücke)

Information von sabines vor 1 StundeMicrosoft

Wegen Problemen (BOSD, nicht startende PCs) wurde das Update KB4056897 und KB4056894 für AMD CPUs zurückgezogen. Dieses Update KB4073578 ...

Mac OS X

MacOS wo ist die Tilde ?

Tipp von Alchimedes vor 14 StundenMac OS X1 Kommentar

Hallo, ich hab eine MacOS qwertz Keyboard auf US Layout umgestellt da die Sonderzeichen besser erreichbar sind. Leider fehlt ...

Datenschutz

Weitere Informationen zum Sicherheitsproblem BeA

Information von Penny.Cilin vor 21 StundenDatenschutz

Im folgenden ein weiterer Bericht über die Sicherheitsprobleme von Bea. Fataler Konstruktionsfehler im besonderen elektronischen Anwaltspostfach Gruss Penny

Windows 10

Systemdienste behalten nach Win10 inplace-Upgrade nicht die ggf. modifizierte Startart bei

Tipp von DerWoWusste vor 22 StundenWindows 103 Kommentare

Stellt Euch vor, Ihr habt ein Win10 System und modifiziert dort die Startart von Systemdiensten. Zum Beispiel wollt Ihr ...

Heiß diskutierte Inhalte
Netzwerke
NTFS-Berechtigung
Frage von Daoudi1973Netzwerke23 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
gelöst Frage von Winfried-HHBatch & Shell19 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...

Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von fyrb38Windows 1018 Kommentare

Guten Tag, meine Schwester reist in einigen Wochen für ein paar Monate ins Ausland und hat sich dafür ein ...

Microsoft Office
Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei
Anleitung von SarekHLMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...