Problems logging in
Communities icon default size64 VBA Entwickler-Treff Suche nach Wert und Format
Hallo zusammen,
Wenn man die "normale" Direktsuche über die Methode Find einsetzt und dabei zwei gleichnamige Konten in einer Spalte hat, dann findet er standardmäßig immer das erste (wie der SVERWEIS). Über einen kleinen Trick kann man Excel aber dazu bewegen, das zweite Konto zu finden. Dazu würde man das zweite Konto mit dem Schriftschnitt Fett belegen und eben eine kombinierte Suche nach Konto und Format durchführen. Dazu stelle ich euch ein Makro aus meinem VBA-Tanker vor:
Sub SucheNachInhaltUndFormat()
Dim rngTreffer As Range
With Tabelle1
Application.FindFormat.Font.Bold = True
Set rngTreffer = .Range("B:B").Find(what:=.Range("F1").Value, lookat:=xlWhole, SearchFormat:=true)
If Not rngTreffer Is Nothing Then
.Range("G1").Value = rngTreffer.Offset(0, -1).Value
Else
.Range("G1").ClearContents
End If
Application.FindFormat.Clear
End With
End Sub
'Quelle: VBA-Tanker, ID 10337
Nikolaus Bajmoczy Workbook_AfterSave funktioniert nicht
ich möchte in einem Feld meiner Datei die Dateigröße anzeigen
das funktioniert auch wunderbar mit
Range("S14").Value = (FileSystem.FileLen(ThisWorkbook.FullName) / 1024 / 1024)
jetzt möchte ich allerdings dieses Makro ('Dateigr') automatisch NACH dem Speichern ausführen
wenn ich den Code (bzw. den Aufruf des Makros) nämlich in "Workbook_BeforeSave" einbaue (das mir beim Speichern Datum und Uhrzeit der letzten Speicherung in ein anderes Feld schreibt) bleibt die "alte" Dateigröße stehen da Excel offensichtlich "vor" dem speichern die ggf. geänderte Dateigröße noch nicht kennt (auch wenn sie ja schon mit dem Menü Datei/Informationen/Eigenschaften angezeigt wird)
ich habe mir deshalb im www einen Code für Workbook_AfterSave gesucht:
(der folgende Code ist natürlich unter 'DieseArbeitsmappe')
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
If Success Then
MsgBox ("The workbook was successfully saved.")
End If
End Sub
die Messagebox wird allerdings nicht angezeigt (und mit "Call Dateigr" funktioniert es natürlich auch nicht) ...
wer weiß einen Rat?
Nikolaus Bajmoczy
einmalig wurde die MessageBox jetzt angezeigt, der Codeteil mit der Dateigröße wurde aber nicht ausgeführt
Communities icon default size64 VBA Entwickler-Treff is organising the following event: Letzte, belegte Zeile finden
Hallo zusammen,
welcher der vier hier angebotenen Varianten nutzt Ihr, um die letzte, belegte Zeile einer Tabelle zu finden?
Sub LetzteBelegteZeileErkennen()
With Tabelle1
MsgBox "Variante 1: Letzte, belegte Zeile: " & .Range("A1").SpecialCells(xlCellTypeLastCell).Row & vbLf & _
"Variante 2: Letzte, belegte Zeile: " & .UsedRange.Rows.Count & vbLf & _
"Variante 3: Letzte, belegte Zeile: " & .Range("A" & .Rows.Count).End(xlUp).Row & vbLf & _
"Variante 4: Letzte, belegte Zeile: " & .Range("A:A").Cells.Find("*", SearchOrder:=xlByRows, LookIn:=xlValues, SearchDirection:=xlPrevious).Row
End With
End Sub
'Quelle: VBA-Tanker, Id: 10327
Anonymous poll | 17 votes | Poll ended
Communities icon default size32
+2 more comments
Last comment:
Franz-Josef Klur
Eine etwas verbaute Tabelle liegt vor, anders kann ich mir nicht erklären, dass bei den angegebenen Methoden ein nicht richtiges Ergebnis vorliegt.
Hier die funktionierende Methode:
ActiveCell.SpecialCells(xlLastCell).Select
Selection.End(xlToLeft).Select
Selection.End(xlUp).Select
msgbox ActiveCell.Row
Only visible to XING members Excel - Werte aus versch. Arbeitsmappen mit Spalten-Wert als eindeutigen Identifizierer übernehmen
Hallo zusammen,
ich habe folgende zwei Tabellen (S. Anhang!). Ich habe nun folgendes Problem, an dem wobei ich schon seit einigen Tagen in verschiedenen Tutorials und Webinaren versucht habe, dies herauszufinden:
Es sollte mit einem VBA-Makro umgesetzt werden!
Die Tabelle MUC_PÜ_Muster ist nach Datum 2 sortiert, die Tabelle MUC_BÜ_Muster nicht.
Wenn ich nun Änderungen in der Tabelle MUC_PÜ_Muster vornehme, sollen diese per Klick auf einen Button auch in der Tabelle MUC_BÜ_Muster übernommen werden, allerdings soll diese Tabelle NICHT sortiert werden. Eindeutiger Identifikator soll die Spalte 'Name' sein.
Wenn ich z.B. das Datum1 für 'Testuser13' in der Tabelle MUC_PÜ_Muster ändere, soll die gesamte Zeile auch in der Tabelle MUC_BÜ_Muster aktualisiert werden, allerdings sollen die Zeilen nicht wie in Tabelle MUC_PÜ_Muster sortiert werden, sondern die Aktualisierung soll in der Zeile mit 'Testuser13' als eindeutig identifiziertem Wert in der Spalte Name erfolgen.
Kann mir hier jemand helfen bzw. mir Ratschläge geben, wie ich das am sinnvollsten umsetzen kann?
Dirk-Lothar Hornauer
+10 more comments
Last comment:
Only visible to XING members
Ich denke das mit dem Unique Identifier macht wohl keinen Sinn.
Es ist wohl naheliegend, dass Excel diese Funktion nicht unterstützt, weil das in der Regel auch keinen Sinn macht.
Sinnvoller ist es, geeignete Filterfunktionen zu erstellen. Oder hat von euch schon mal jemand eine ähnliche Anforderung gehabt wie ich sie hier beschrieben habe?
Bernd Held Jahresdaten auf 12 Tabellen verteilen
Hallo zusammen,
Über den Einsatz der Zugriffsmethode ADO kann auch auf eigene Mappen schnell zugegriffen werden, um beispielsweise Auswertungen zu machen. Im folgenden Beispiel wird eine Jahrestabelle mit Umsätzen auf 12 neue Tabellen verteilt. Die Gesamtsumme eines jeder Monatstabelle soll ebenfalls ermittelt werden.
Sub AlleMonatsumsaetzeAufSeparatenTabellenAusgeben()
Dim cn As Object
Dim rs As Object
Dim strConnection As String
Dim strSQL As String
Dim wkbZiel As Workbook
Dim intAnzahl As Integer
Dim i As Integer
Set cn = CreateObject("ADODB.CONNECTION")
strConnection = "DRIVER={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)}; DBQ=" & _
ThisWorkbook.FullName
With cn
.Open strConnection
intAnzahl = Application.SheetsInNewWorkbook
Application.SheetsInNewWorkbook = 12
Set wkbZiel = Workbooks.Add
Application.SheetsInNewWorkbook = intAnzahl
For i = 1 To 12
wkbZiel.Worksheets(i).Columns(1).NumberFormat = "DD.MM.YYYY"
strSQL = tbl_Monate.TextBoxes(1).Text & i
Set rs = CreateObject("ADODB.RECORDSET")
With rs
.Source = strSQL
.ActiveConnection = strConnection
.Open
wkbZiel.Worksheets(i).Range("A1").CopyFromRecordset rs
wkbZiel.Worksheets(i).Range("D1").Value = _
Application.WorksheetFunction.Sum(wkbZiel.Worksheets(i).Columns(2))
.Close
End With
Next i
End With
cn.Close
Set cn = Nothing
Set rs = Nothing
End Sub
'Quelle: VBA-Tanker ID10216
Das "Besondere" an der Lösung ist, dass ich die SQL-Anweisung in eine TextBox auf der Tabelle "tbl_Monate" hinterlegt habe. Gerade bei längeren SQl-Anweisungen kriegt man ja oft die Kotze, wenn man die Zeile umbrechen muss... Wenn ich die SQL-Anweisung in eine Textbox kopiere, brauche ich mich nicht mehr um Apostrophen, Zeilenumbrüche, &-Zeichen und dergleichen kümmern.
Ach ja und die Laufzeit ist auch ganz prima...
VG
Bernd
held-office.de

Moderators

Moderator details

About the group: VBA Entwickler-Treff

  • Founded: 12/10/2011
  • Members: 1.407
  • Visibility: open
  • Posts: 654
  • Comments: 1.517