Seltsam. Wenn ich VBA programmiere, verwende ich NIE die Befehle Activate oder Select. Mit zwei Ausnahmen: ich programmiere Spunganweisungen: „wechsle für den Anwender auf ein bestimmtes Blatt oder auf eine bestimmte Zelle“. Oder: am Ende des Programms soll der Cursor auf einem bestimmten Blatt und/oder auf einer bestimmten Zelle sitzen. Ich setze Verweise auf Zellen:
Sub Kopieren_und_Fertig()
Dim xlZelle As Range
Dim i As IntegerSet
Set xlZelle = ActiveSheet.Range("C2")
For i = 1 To 50
xlZelle.Copy Destination:=xlZelle.Offset(i, 0)
Next
MsgBox "fertig"
Ich starte das Makro von Excel aus:
Was passiert? man siehst nichts:
Auch wenn der Verweis auf ein anderes Tabellenblatt gesetzt wird:
Set xlZelle = ThisWorkbook.Worksheets(2).Range(„C2“)
Für den Befehl Inhalte einfügen sind zwei Zeilen Code nötig:
With xlZelle.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="m,w,d"
End With
For i = 1 To 50
xlZelle.Copy
xlZelle.Offset(i, 0).PasteSpecial Paste:=xlPasteValidation
Application.CutCopyMode = False
Next i
MsgBox "fertig"
Was geschieht hier:
Der Cursor wandert über den Bildschirm.
Ein Zucken ist auch am Bildschirm zu sehen, wenn die Inhalte auf einem anderen Tabellenblatt eingefügt werden:
Set xlZelle = ThisWorkbook.Worksheets(2).Range(„C2“)
Was tun? Klar: Die Bildschirmaktualisierung ausschalten. Dann funktioniert es! nichts zuckt; nichts zeigt sich …
Man schreibe in eine Zelle den Text ‚WAHR. Das Ergebnis wird linksbündig als Text angezeigt. Das Gleiche passiert, wenn man eine Zelle als Text formatiert und anschließend mit den Buchstaben WAHR füllt.
Soweit so gut. Die Überprüfung mit der Funktion ISTTEXT bestätigt, dass ein Text in der Zelle steht; ISTLOG verneint die Existenz eines booleschen Wertes (WAHR oder FALSCH). Auch die Überprüfung mit =Zelle=WAHR und =ZELLE=“WAHR“, verneint das erste und bestätigt das zweite:
Irritierend ist nun, dass die Funktion ZÄHLENWENN 0 liefert, wenn man den TEXT „WAHR“ zählt:
Na, ein bisschen mehr Mühe hätte sich VBA schon geben können:
Anwendungs- oder objektorientierter Fehler. Na toll! Und wo? Und was?
Der Debugger hilft: die Berechnung Row – 8 ergibt einen falschen, nämlich negativen Wert (falsch gerechnet; nicht aufgepasst!) – so kann die Zelle „C-1“ nicht ermittelt werden.
Auch hier: Typen unverträglich!
Ey, VBA: sag mir doch deutlich, dass ich Dumpfbacke bei der Funktion MATCH (VERGLEICH) die beiden Parameter vertauscht habe. Während die Funktion der Zeile darüber (COUNTIF, ZÄHLENWENN) die Parameter ich suche wo wen verlangt, ermittelt MATCH / VERGLEICH: ich suche wen wo. Und keiner hilft mir! *lach*
Wenn ich in VBA eine Zelle oder einen Zellbereich kopieren oder ausschneiden möchte, verwende ich die Methoden Copy, beziehungsweise Cut mit dem optionalen Parameter Destination, also beispielsweise:
beispielsweise um die Datenüberprüfung zu kopieren. Danach läuft um die kopierte Zelle eine „Ameisenlinie“:
Das würde nicht weiter stören – sie verschwindet bei den weiteren Befehlen. Aus ästhetischen Gründen und zur Sicherheit (es kann zu Problemen führen, wenn der Kopiermodus noch aktiv ist), schalte ich den Laufrahmen aus. Hierbei hilft
Application.CutCopyMode = False
Das Erstaunliche:
IntelliSense zeigt die Parameter False und True nicht an. Auf der Seite
ich hatte schon lange kein Problem mehr mit Excel,
sicherlich auch dank Ihrer Kurse, die ich mir in LINDEDIN Learning immer wieder
einmal ansehe.
Heute nun habe ich ein Problem, bei dem Sie mir vielleicht
helfen können. Wenn es allerdings nicht so nebenher geht, dann können Sie mir
dies gerne mitteilen, dann muss ich weiter forschen.
Ich möchte mir hervorgehobene Zellen zählen lassen, genau
genommen, möchte ich beim Wahlverfahren D’Hondt sofort sehen, wie viele Sitze
hat Liste 1, 2…
Möglicherweise geht es auch nicht mit dem Zählen der
hervorgehobenen Zellen sondern anders.
Ich habe es mit SVERWEIS versucht, was leider dann ab der 5.
Zeile ein „NV“ brachte – mir leider unverständlich. Mit INDEX und
VERGLEICH komme ich auch nicht weiter, weil ich ja keine genaue Zeilen oder
Spalenzahl angeben kann. Diese kann ja – je nach Höchstwert – variieren.
Ich sende Ihnen die Datei einmal zu und freue mich auf Ihre
Antwort, kann aber auch verstehen, wenn Sie schreiben: Kann ich Ihnen nun
leider nicht mitteilen, dauert zu lange…
Trotzdem danke für Ihr offenes Ohr.
Ich wünsche Ihnen noch einen schönen Tag.
Hallo Frau P.,
das ist eine
hübsche Fingerübung.
Ein paar
Anmerkungen:
1. man kann
Farben in Excel nicht zählen. Und wenn ich jetzt von Ihnen die Funktion ZELLE
höre – mit Einschränkungen ja. Aber – diese Funktion reagiert nicht auf
Formatänderungen. Und: zeigt auch nicht alle Formate an!
2. Ich würde es klassisch mit SUMMEWENN lösen. SVERWEIS, INDEX & co greifen auf mehrere Spalten zu. Mit der neuen Funktion XVERWEIS kann man es auch lösen – aber ich weiß nicht, ob sie diese schon haben. Werfen Sie einen Blick auf meine Lösung in Spalten M:O, bzw. zusammengefasst in Spalte Q.
3. Für welches Beispiel/Land verwenden Sie das? Ich lese bei wikipedia, dass noch die Schweiz, Spanien, Portugal, Belgien, Polen und Finnland dieses Verfahren verwenden. Sie wissen, dass dies in Deutschland 1985 durch das Hare-Niemeyer-Verfahren abgelöst wurde. Ich hätte es nämlich fälschlicherweise in meinem Excel-Formelbuch erläutert … und dann gemerkt, das wir so (in Deutschland) gar nicht mehr rechnen.
zusammengefasst
Hallo Herr Martin,
herzlichen Dank für Ihre schnelle Rückmeldung und Ihren
Vorschlag der Berechnung.
Ich habe es jetzt noch einmal nachgebaut und verstanden,
obwohl ich niemals auf die Formel gekommen wäre.
Zu Nr. 3:
Ich weiß nur, dass die Hochschule Furtwangen den Vorschlag
unserer Justiziarin aus Stuttgart aufgegriffen hat und diesen in ihrer
Wahlordnung nun festgelegt hat. Wir haben bisher mit Hare-Niemeyer gewählt.
Aber leider soll es auch bei D’Hondt bleiben, obwohl wir eine Hochschule mit
drei Standorten sind und unserer kleinster Standort mit diesem Wahlverfahren
ernste Schwierigkeiten bekommen könnte. Ich hatte das (als Wahlleitung)
angemerkt, es bleibt trotzdem bei D’Hondt.
Ich wünsche Ihnen noch einen schönen Tag und weiterhin viel
Erfolg bei Ihrer Arbeit.
Moin zusammen, habe eine Excel geerbt und möchte diese für einen schnelleren Start bereinigen. Es waren ne Menge Datenverbindungen drin, die ich bis auf eine auflösen konnte. Eine letze weigert sich hartnäckig, von mir gefunden zu werden. Habe bisher mit Strg+F alle (bis auf die eine) gefunden. Auch die Buttons habe ich untersucht, die Makros aus externen Datenquellen aufgerufen haben. Nun habe ich noch „Daten mit Hilfe einer Verbindung abrufen) probiert, leider erfolglos.
Hat noch jemand eine Idee?
besten Dank
Wie kann so etwas passieren? Angenommen man hat eine Datenüberprüfung oder eine Bedingte Formatierung mit ausgelagerten Werten auf einem anderen Tabellenblatt. Wird dieses Blatt nun verschoben, passiert Folgendes:
Und in Datei / Information kann man sehen, aber nicht löschen:
Wenn Sie die Verknüpfungen endgültig löschen, werden die Formeln und externen Bezüge in Werte umgewandelt. Da dies nicht rückgängig gemacht werden kann, sollten Sie Ihre Datei unter einem anderen Namen speichern. Sind Sie sicher, dass Sie die Verknüpfungen endgültig löschen möchten?
Und was passiert? – Nichts!
Neben Formeln, Datenüberprüfung oder eine Bedingter Formatierung sind auch Namen eine Quelle von Verknüpfungen auf externe Dateien.
Martin Weiß (der tabellenexperte) listet sie alle auf:
Zusammenfassung: Weil schon mehrere gefragt und kommentiert haben:
Der Gruppenmodus in Excel ist eigentlich eine praktische Sache. Eigentlich! Mit gedrückter [Strg]- oder [Umschalt]-Taste kann man in Excel mehrere Tabellenblätter markieren. Ebenso über das Kontextmenü „Alle Blätter auswählen“. Und dann auf mehreren Blättern gleichzeitig arbeiten. Auf ein andere Tabellenblatt gelangt man mit der Tastenkombination [Strg] + [Bild ↓] beziehungsweise mit [Strg] + [Bild ↑ ]. Das bedeutet: drückt man: [Umschalt] + [Strg] + [Bild ↓] beziehungsweise [Umschalt] + [Strg] + [Bild ↑ ] (bei Excel für Windows) so wird das aktuelle Blatt und das danebenliegende Blatt markiert.
Manchmal ist es schlecht zu sehen. Man erkennt es aber immer an der Titelzeile: DORT steht „Gruppe“:
Übrigens: ausgeblendete Blätter werden nicht selektiert, wenn alle Blätter ausgewählt werden.
Der Gruppierungsmodus, beziehungsweise die Mehrfachselektion bewirkt, dass einige Dinge nicht mehr eingefügt werden können: Dazu gehören:
Die Methode ‚Visible‘ für das Objekt ‚_Worksheet‘ ist fehlgeschlagen.
Ich wollte per VBA ein Blatt ausblenden. Damals war die Ursache, dass dieses auszublendende Blatt das einzige war – DAS geht nicht. Eine Exceldatei benötigt immer mindestens ein sichtbares Tabellenblatt.
Nun erhalte ich die Fehlermeldung erneut.
Die Ursache diesmal: Die Arbeitsmappe ist geschützt (Überprüfen / Arbeitsmappe schützen).
D1353 M1TT31LUNG Z31GT D1R, ZU W3LCH3N GRO554RT1G3N L315TUNG3N UN53R G3H1RN F43H1G 15T! 4M 4NF4NG W4R 35 51CH3R NOCH 5CHW3R, D45 ZU L353N, 483R M1TTL3W31L3 K4NN5T DU D45 W4HR5CH31NL1ICH 5CHON G4NZ GUT L353N, OHN3 D455 35 D1CH W1RKL1CH 4N5TR3NGT. D45 L315T3T D31N G3H1RN M1T 531N3R 3NORM3N L3RNF43HIGKEIT. 8331NDRUCK3ND, OD3R? DU D4RF5T D45 G3RN3 KOP13R3N, W3NN DU 4UCH 4ND3R3 D4M1T 83G315T3RN W1LL5T
Kann man / kann ich selbst solche Texte produzieren? Mit Excel natürlich! Klar die Funktion WECHSELN hilft dabei:
Ich trage einen Text in die Zelle A3 ein. Die Funktion GROSS verwandelt ihn in Großbuchstaben. In den Zelle C1:G2 stehen die Werte E, I, S, B und A, die durch 3, 1, 5, 8 und 4 ersetzt werden. In C3 befindet sich die Formel
Ich erstelle ein großes, komplexes Formular (UserForm) in VBA, starte es zum Testen und:
Unerwartetes Dateiende.
Etwas differenziertes dürfte es schon sein. Vor allem dürfte der Debugger starten, der mir die Zeile kennzeichnet, in der der Fehler erzeugt wurde.
PS: Der Fehler kam dadurch zustande, dass ich ein Objekt adressiert hatte, das nicht in einer Sammlung vorhanden war. Ich habe den Fehler im Einzelschrittmodus gefunden.
Microsoft beschreibt darin seine überarbeitete Rechtschreib- und Stilprüfung. Schade nur, dass sie sie selbst nicht verwenden. Ich lese auf der Seite Stilblüten wie:
* Microsoft Editor ist ein Dienst mit AI-Leistung, mit dem Sie Ihren besten Writer in mehr als 20 Sprachen hervorbringen können
* Mit dem kostenlosen Service können Sie die Grundlagen von Grammatik und Rechtschreibung festnageln.
* … beim Verfassen und korrigieren …
* Oder Sie können sich mit Ihrem Microsoft 365-Konto anmelden, um über die Grundlagen hinaus zu verbreitet zu sein, einschließlich Statistiken zur Lesbarkeit.
Okay – ich gestehe: sie haben es bemerkt und korrigiert. Manchmal dauert es ein bisschen …
So wie ich Anfang dieser Woche über den „Pries“ (statt „Preis“) gespottet hatte – auch das ist korrigiert:
Kennt ihr das? Wenn ich schnell etwas zeigen oder ausprobieren oder testen möchte, bin ich immer um Namen verlegen. Suche immer nach Datennamen, Überschriften, Bezeichnungen, … Es gibt Menschen, bei denen dann alles „Test“ heißt: Test1, Test2, … Ich verwende gerne zwei oder drei gleiche Buchstaben. Meine Testmakros in VBA heißen „xxx“. Meine Testdateien „ttt“. Schnell getippt.
Nun wollte ich etwas probieren. Ich habe eine Liste:
Ich ändere die Überschrift in „ppp“:
Bestätige:
Schaue verdutzt! Ist das immer so? Macht Excel immer so einen merkwürdigen Haken bei „ppp“? Gehe zu einem anderen Rechner: Nö – dort nicht! Ich überlege. Stimmt: es ist schon sehr, sehr lange her, da habe ich für einen Fachartikel in Word häufig den griechischen Buchstaben π benötigt. Und ihn deshalb in die AutoKorrektur gelegt. Auf einen Text, den es in der deutschen Sprache nicht gibt: „ppp“.
Während Word mit dem SmartTag anzeigen würde, dass dieser Text durch die AutoKorrektur entstanden ist (und dort auch wieder gelöscht werden kann):
zeigt Excel es leider nicht an. Ich habe darüber berichtet:
Ich bin in den Microsoft-Produkten – vor allem in Microsoft 365 häufig erstaunt und frage mich oft: „war das früher schon drin und habe ich es nicht gesehen.“ Ich weiß es oft nicht! Schon aufgefallen? Markiert man in Excel eine Spalte
wird 1S im Namensfeld angezeigt. Zieht man weiter nach rechts und wieder zurück ist zu lesen: 1048576Z x 1S
Jetzt im Kontextmenü. Lässt man die Maus los, steht der Name der aktiven Zelle im Namensfeld.
In einigen Excelversionen steht der markierte Bereich, wenn mehrere Spalten ausgewählt wurden, im Namensfeld:
bei anderen werden sie über ein Tooltip angezeigt. Und eben nur die aktive Zelle.
Verblüfft! Ich mache Word auf und finde in der Registerkarte „Start“ ein Symbol „Editor“. Neugierig wie ich bin, klicke ich darauf. Aha – die Rechtschreibprüfung! Ich schaue in der Registerkarte „Überprüfen“ nach – tatsächlich – dort auch! „Editor“! Nicht mehr „Rechtschreibprüfung“. Zitternd öffne ich Excel: „uff – dort haben wir noch das „alte“ Symbol mit der „alten“ Beschriftung „Rechtschreibung“. In PowerPoint, Outlook, Visio, Access ebenso.
Frage 1: Warum macht Microsoft so etwas?
Frage 2: Ändern die das auch in den anderen Programmen?
Die Aufgabe lautet: Wir haben in CorelDraw technische Geräte erstellt – diese sollen in Visio nachbearbeitet werden, so dass man sie verwenden kann. Ich schaue sie mir an. Das Rack ist zu groß für den Schrank:
Also verkleinern. Das Dumme ist: Durch das Verkleinern des Objektes wird die Schriftgröße (und Linienstärke) nicht verkleinert, weil diese Formatierungsattribute unabhängig von der Größe sind. Das heißt: die Schrift ist zu groß:
Also zurück auf Originalgröße. Einige der Texte sind in 3 pt formatiert:
Wenn ich sie auf 10% verkleinere, also auf 0,3 pt – weigert sich Visio:
Setzt die Schriftgröße ungefragt auf 1 pt zurück.
Was würde Excel machen? Eine Fehlermeldung! DAS ist vernünftig:
Lob an Excel! Schelte an Visio!
Zugegeben: ich musste in Excel noch nie eine Schriftgröße < 1 pt wählen …
Nachtrag: ich habe die Originalzeichnung in CorelDraw bearbeitet: Dort die Schrift in Kurven konvertiert und anschließend erneut nach Visio exportiert. Dann wird die Schrift beim Verkleinern des Objekts auch verkleinert.
Kennt ihr das? Manchmal liefert Outlook beim Suchen nicht alle Ergebnisse. Oder filtert nicht korrekt. Es bleibt immer das Gefühlt, dass die Maschine im Hintergrund schneller läuft als Ergebnisse an der Oberfläche angezeigt werden können. Dieser Screenshot zeigt es: Im Ordnerbereich wird eine ungelesene Mail angezeigt – die Filterung über die Registerkarten liefert 0 ungelesen Mails. Ja – was nun?
Perfide! Ich erhalte eine CSV-Datei und öffne sie per Doppelklick in Excel – alles prima:
Bei einer anderen Datei jedoch:
Werden Umlaute und Sonderzeichen (€) „zerschossen“. Da eine CSV-Datei eine Textdatei ist, lohnt sich ein Blick in den Editor. Wurde das Dateiformat auf ANSI oder UTF-8 mit BOM ( Byte Order Mark) eingestellt, funktioniert alles prima. Jedoch bei „reinem“ UTF werden Sonderzeichen nicht korrekt codiert.
Ein Öffnen mit dem Konvertierungsassistenten würde helfen – dort kann man die Codierung explizit angeben.
PowerQuery und VBA wären weitere Lösungswege:
Aber Excel hat keine Einstellungsoptionen, die dieses Format richtig erkennt und interpretiert. Ärgerlich, wenn ein System SOLCHE CSV-Dateien liefert …
Wie oft predige ich: „Bitte verwenden Sie nur die vorhandenen Steuerelemente. Keine anderen. Kein ActiveX und auch keine sonstigen Formularsteuerelemente. Das kann nur Ärger geben.“
Und es gab Ärger. Bei der Umstellung auf Office 365 liefen einige Formulare nicht mehr. Der Grund: Klickt man im Entwurfsmodus auf eine Fortschrittsanzeige (Progressbar), erscheint eine Fehlermeldung. Die Ursache: der Speicherort dieses Steuerelements war an einem anderen Ort – bei der Umstellung haben noch andere Programme Dateien für ihren Zweck „verschoben“ …
Anruf eines verzweifelten Anwenders. Die Bank, für die er arbeitet, stellt um auf Office 365. Ich glaube von Office 10. Einige Makros in Word funktionieren nicht mehr. Er zeigt es mir online. Altes System: Läuft. Neues System: Nichts läuft.
Ich schaue es mir an und finde sehr schnell:
Ein Modul AutoNew mit einer Main-Prozedur. Mann – das ist sowas von 1997! Ist mir noch nicht aufgefallen – dass diese uralt Automakros nicht mehr funktionieren. Nein – da verwenden wir doch die Ereignisse „Document_Open()“ und „Document_New()“. Damit klappt es dann auch. Der Anwender war glücklich!
Ein Telefongespräch: „Hallo Herr Martin, haben Sie meine Mail erhalten?“ – „Nein, antworte ich wahrheitsgemäß.“ – „Seltsam – ich habe die doch letzte Woche an Sie geschickt!“ – „An welche Adresse?“ Sie liest die Email-Adresse vor – meine neue, die ich seit zirka drei Monaten habe. Hängt mit den verschiedenen Microsoft-Paketen zusammen … anderes Thema. Ich schaue noch einmal nach – nichts! Auch nicht im Spam-Ordner. Ich verabschiede mich mit einem „Vielen Dank für den Hinweis – ich prüfe das mal.“ Und fange an zu prüfen:
Sende mir selbst eine Mail an besagte Adresse. Kommt an.
Bitte meinen Freund von einem anderen Rechner von seinem Account mir einem Mail zuzusenden. Kommt an. Ich schaue genau hin. Mein Postfach in Outlook der Adresse, die auch im Impressum zu finden ist, sieht so aus:
Meine „neue“ Mailadresse weist folgendes Postfach in Outlook auf:
Und tatsächlich: in der Registerkarte „Sonstige“ finde ich auch die Mail der Dame, mit der ich telefoniert hatte. Ich könnte platzen: Wer macht denn so etwas? „Relevant“ als Standardoption in Outlook? Aber nicht bei allen Konten? Und – wer entscheidet, was relevant ist? Schließlich habe ich der Frau schon eine Einladung zu einer Teams-Besprechung geschickt. So unrelevant kann das wohl nicht sein!
So nicht! Wer so etwas macht, wird auf meiner Seite excel-nervt an den Pranger gestellt:
Danke an Mourad Louha für das Bild. Und den Hinweis für alle, die es nicht gesehen haben: die Säule mit 116 ist höher als die Nachbarsäulen mit 114 und 129 und 190. Übrigens: auch das bitte nicht:
Und wie macht man so etwas in Excel? Nun – entweder einfach die Datenbeschriftung per Hand ändern:
Oder mit zwei Spalten, wobei die zwei Säulenreihe transparent formatiert wird und „hinter“ die erste, sichtbare Reihe geschoben wird. Von der unsichtbaren werden die Werte angezeigt.
Und noch einmal deutlich: WER DAS MACHT WIRD AN DEN PRANGER GESTELLT!
Ich erstelle einen Dialog und erstelle eine Schaltfläche, die es ermöglicht, die Werte zu sortieren:
Ich verwende eine Code, den ich im Internet gefunden habe:
Private Sub cmdSort_Click()
Dim i As Integer
Dim listMatrix As Object, varDaten As Variant
Set listMatrix = CreateObject("System.Collections.ArrayList")
For i = 0 To Me.lstAuswahl.ListCount - 1
listMatrix.Add Me.lstAuswahl.List(i)
Next i
listMatrix.Sort
Me.lstAuswahl.Clear ' -- Auswahlliste leeren
For Each varDaten In listMatrix
Me.lstAuswahl.AddItem varDaten
Next varDaten
If Me.lstAuswahl.ListCount > 0 Then
Me.lstAuswahl.ListIndex = 0
End If
Set listMatrix = Nothing
End Sub
Klappt wunderbar – allerdings:
ArrayList ist ein Objekt von .NET-Framework 3.5. Ist dieses nicht auf einem Rechner installiert, funktionieren die Befehle der Klasse auch nicht:
Also – raus damit – und die „klassische“ Variante:
Private Sub cmdSort_Click()
Dim intLast As Integer, intNext As Integer
Dim strTemp As String
With Me.lstAuswahl
For intLast = 0 To .ListCount – 1
For intNext = intLast + 1 To .ListCount – 1
If .List(intLast) > .List(intNext) Then
strTemp = .List(intLast)
.List(intLast) = .List(intNext)
.List(intNext) = strTemp
End If
Next intNext
Next intLast
End With
End Sub
ich habe im Diagramm das Gitternetz relativ eng gewählt und
möchte die Beschriftung der Achsen weniger eng wählen. Die Beschreibung von MS
ist leider für mich nicht zielführend.
Können Sie mir eine Hilfestellung geben?
Viele Grüße
p. s.: ich kenne mich an sich einigermaßen mit Excel aus
Hallo Herr A.,
Sie können doch ein Hauptgitter und ein Hilfsgitter
einschalten:
Die Abstände der Achsenbeschriftung werden über die
Achsenoptionen festgelegt. Dort finden Sie auch die Abstände der
Hilfsgitternetzlinien:
Kennst du den Spezialfilter (Daten / Sortieren und Filtern / Erweitert)? Er erlaubt beispielsweise Unikate aus einer Liste herauszufiltern:
Der dahinterliegende VBA-Befehl lautet AdvancedFilter. Er ist ein Befehl (eine Methode des Zellbereichs) und einfach zu programmieren. Okay – er ist – bei großen Datenmengen – nicht sehr schnell – aber für „Kleinigkeiten“ sehr gut geeignet:
Dim xlBlatt As Worksheet
Dim xlQuellbereich As Range
Dim xlZielZelle As Range
Set xlBlatt = ActiveSheet
Set xlQuellbereich = xlBlatt.Range("A1").CurrentRegion
Set xlZielZelle = xlBlatt.Range("E1")
xlQuellbereich.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=xlZielZelle, Unique:=True
Anschließend kann man Spalte A:D löschen; die Ergebnisse sortieren, weiter verarbeiten …
Was passiert allerdings, wenn mein System keine Daten liefert? Eine leere Datenquelle:
Die Antwort: DANN läuft der Spezialfilter an die Wand! Also: aufpassen! Vorher überprüfen, ob WIRKLICH Daten vorhanden sind (xlQuellbereich.Rows.Count > 1). Sonst passiert das:
Wie gemein! Eine Kopfzeile in einem Tabellenblatt in Excel:
Ich fülle diese Kopfzeile in Excel mit VBA:
Dim strTitle As String
Dim strLocation As String
Dim strTarget As String
Dim strType As String
' -- die Variablen werden gefüllt:
strTitle = "Renes Titel"
strLocation = "Renes Ort"
strTarget = "Renes Ziel"
strType = "Renes Typ"
With ActiveSheet.PageSetup
' -- schreibe nur rein, falls der Text noch nicht drinsteht.
If InStr(1, .LeftHeader, "Title" & strTitle) = 0 Then
.LeftHeader = Replace(.LeftHeader, "Title", "Title " & strTitle)
End If
If InStr(1, .LeftHeader, "Location" & strLocation) = 0 Then
.LeftHeader = Replace(.LeftHeader, "Location", "Location " & strLocation)
End If
If InStr(1, .LeftHeader, "Target group" & strTarget) = 0 Then
.LeftHeader = Replace(.LeftHeader, "Target group", "Target group " & strTarget)
End If
If InStr(1, .LeftHeader, "Document type" & strType) = 0 Then
.LeftHeader = Replace(.LeftHeader, "Document type", "Document type " & strType)
End If
End With
Klappt:
Ich fülle sie ein zweites Mal. Klappt. Ein drittes Mal. Fehler:
Die LeftHeader-Eigenschaft des PageSetup-Objektes kann nicht festgelegt werden.
Hä?
Ich „schaue nach“, was in der Kopfzeile steht:
MsgBox ActiveSheet.PageSetup.LeftHeader
Stimmt – ich erinnere mich – die Formatierungsanweisungen stehen vor den Texten. Abgesehen davon, dass ich nicht mehrfach die Texte in die Kopfzeile schreiben darf, muss ich die Kopfzeile anders erzeugen:
Das ist bösartig! In einem Exceldokument sollen Werte von Eigenschaftsfeldern, die von SAP kommen, in die Kopfzeile geschrieben werden. Also von:
Nach:
Der Befehl für diese Felder ist schnell gefunden:
ContentTypeProperties(„Target group“)
Das Makro:
Dim strTitle As String
Dim strLocation As String
Dim strTarget As String
Dim strType As String
strTitle = ThisWorkbook.BuiltinDocumentProperties("Title").Value
strLocation = ThisWorkbook.ContentTypeProperties("Location").Value
strTarget = ThisWorkbook.ContentTypeProperties("Target group").Value
strType = ThisWorkbook.ContentTypeProperties("Document type").Value
If strTitle <> "" Then strTitle = " " & strTitle
If strLocation <> "" Then strLocation = " " & strLocation
If strTarget <> "" Then strTarget = " " & strTarget
If strType <> "" Then strType = " " & strType
With ActiveSheet.PageSetup
.LeftHeader = Replace(.LeftHeader, "Title", "Title" & strTitle)
.LeftHeader = Replace(.LeftHeader, "Location", "Location" & strLocation)
.LeftHeader = Replace(.LeftHeader, "Target group", "Target group" & strTarget)
.LeftHeader = Replace(.LeftHeader, "Document type", "Document type" & strType)
End With
Ein Durchlauf mit leeren Feldern – klappt! Ein Durchlauf mit Daten bringt die Fehlermeldung 13: Typen unverträglich. Ich stutze. Ich untersuche die Inhalte. tatsächlich: die Daten, die aus Sharepoint kommen, sind keine Texte, sondern Datenfelder. Bestehend aus zwei Werten: Inhalt und ID. Sieht man aber nicht:
Nun das kann man abprüfen:
Dim strTitle As String
Dim strLocation As String
Dim strTarget As String
Dim strType As String
If TypeName(ThisWorkbook.BuiltinDocumentProperties("Title").Value) = "String()" Then
If UBound(ThisWorkbook.BuiltinDocumentProperties("Title").Value) >= 0 Then
strTitle = ThisWorkbook.BuiltinDocumentProperties("Title").Value(0)
End If
ElseIf TypeName(ThisWorkbook.BuiltinDocumentProperties("Title").Value) = "String" Then
strTitle = ThisWorkbook.BuiltinDocumentProperties("Title").Value
End If
If TypeName(ThisWorkbook.ContentTypeProperties("Location").Value) = "String()" Then
If UBound(ThisWorkbook.ContentTypeProperties("Location").Value) >= 0 Then
strLocation = ThisWorkbook.ContentTypeProperties("Location").Value(0)
End If
ElseIf TypeName(ThisWorkbook.ContentTypeProperties("Location").Value) = "String" Then
strLocation = ThisWorkbook.ContentTypeProperties("Location").Value
End If
If TypeName(ThisWorkbook.ContentTypeProperties("Target group").Value) = "String()" Then
If UBound(ThisWorkbook.ContentTypeProperties("Target group").Value) >= 0 Then
strTarget = ThisWorkbook.ContentTypeProperties("Target group").Value(0)
End If
ElseIf TypeName(ThisWorkbook.ContentTypeProperties("Target group").Value) = "String" Then
strTarget = ThisWorkbook.ContentTypeProperties("Target group").Value
End If
If TypeName(ThisWorkbook.ContentTypeProperties("Document type").Value) = "String()" Then
If UBound(ThisWorkbook.ContentTypeProperties("Document type").Value) >= 0 Then
strType = ThisWorkbook.ContentTypeProperties("Document type").Value(0)
End If
ElseIf TypeName(ThisWorkbook.ContentTypeProperties("Document type").Value) = "String" Then
strType = ThisWorkbook.ContentTypeProperties("Document type").Value
End If
If strTitle <> "" Then strTitle = " " & strTitle
If strLocation <> "" Then strLocation = " " & strLocation
If strTarget <> "" Then strTarget = " " & strTarget
If strType <> "" Then strType = " " & strType
With ActiveSheet.PageSetup
' -- schreibe nur rein, falls der Text noch nicht drinsteht.
If InStr(1, .LeftHeader, "Title" & strTitle) = 0 Then
.LeftHeader = Replace(.LeftHeader, "Title", "Title" & strTitle)
End If
If InStr(1, .LeftHeader, "Location" & strLocation) = 0 Then
.LeftHeader = Replace(.LeftHeader, "Location", "Location" & strLocation)
End If
If InStr(1, .LeftHeader, "Target group" & strTarget) = 0 Then
.LeftHeader = Replace(.LeftHeader, "Target group", "Target group" & strTarget)
End If
If InStr(1, .LeftHeader, "Document type" & strType) = 0 Then
.LeftHeader = Replace(.LeftHeader, "Document type", "Document type" & strType)
End If
End With
Ich weiß nicht genau warum. Eigentlich ist VBA VBA. Aber manchmal passiert es, dass ich ein Programm schreibe, es einem Kunden weitergebe und sämtliche Funktionen der VBA-Bibliothek nicht erkannt werden, also: Left, Right, Len, InStr, …
Die Lösung: ich setze den Bibliotheksnamen VBA davor, also: VBA.Left, VBA.Right, VBA.Len, VBA.InStr, … Dann läuft es.
Einmal links, einmal rechts – da muss ich jedesmal hinschauen. Kennt ihr das? Ich habe eine Datei erstellt oder geöffnet und modifiziert und möchte die Datei oder die Applikation schließen OHNE zu speichern. Sei es, weil ich etwas ausprobieren wollte, weil ich nur drucken wollte, weil die Änderungen falsch waren, weil Excel volatile Funktionen neu berechnet hat… Es gibt eine Reihe von Gründen. Also: schließen/beenden OHNE ZU SPEICHERN. Wohin klicken? „Nicht speichern“ – rechts:
Eben: „Nicht speichern“ – rechts:
Ups: noch ein Button mehr:
Hier auch:
Oder ich muss genau hinschauen, um zu verstehen, dass „NEIN“ „nicht speichern“ bedeutet:
In PowerQuery muss ich wieder rechts klicken – allerdings: „Verwerfen“:
Und hier: richtig: links klicken! Damit das Hirn wieder funktioniert! Die Aufmerksamkeit auf den Text gelenkt wird! Bloß keine Langeweile oder Gewohnheit aufkommt:
Hallo Rene, ich mache zurzeit Ihre Ecel Schulung Tipps & Tricks, bis jetzt bin ich begeistert, vielen Dank. Eventuell können Sie mir mit einer Formel helfen? Ich habe zwei Tabellenblätter und möchte Emailadresse, die in Blatt 1 in Spalten aufgelistet sind, zu Blatt 2 einen automatischen Bezu herstellen, sodass dort in einer Zelle die EMailadressen automatisch erscheinen, wenn ich sie in Blatt 1 eingetippt habe. Ich danke bereits für Ihre Hilfe.
Hallo Anna, wenn sich der Cursor auf der Zelle befindet, wo die Email-Adresse stehen soll, genügt ein „=“, dann ein Klick auf das erste Tabellenblatt und ein zweiter Klick auf die Zelle, in der sich die Mailadresse befindet. Achtung: Nicht zurückklicken! Sondern mit [Enter] bestätigen! Dann steht in der Zielzelle beispielsweise =Tabelle1!C3 Hilft das? Oder denke ich zu einfach? schöne Grüße Rene Martin
Lieber Rene, danke für die supr schnelle Antwort. Es ist leider doch ein wenig komplizierter, aber ich denk für Sie ebenfalls problemlos zu lösen. Ich füge ein Beispieldokument ein zum besseren Verständnis. Aus Tabelle1 möchte ich automatische alle Email-adressen von Runde 1 in aufgelistet in ein Zelle im Tabellenblatt ‚Mailverteiler‘ auflisten. Wie lautet die Formel des Zellbezugs? Besten Dank für Ihre Hilfe.
Hallo Anna, hast du eine neueres Excel? Und dort die Funktion TEXTVERKETTEN? Damit geht es LG :: Rene
Amüsant. In Excel mit der englischsprachigen Oberfläche darf man ein Tabellenblatt nicht „History“ nennen. Das ist ein geschütztes Wort.
Bei der deutschen Oberfläche funktioniert das.
In der deutschen Oberfläche ist der Name “ Änderungsverlauf “ geschützt; im Französischen Historique. Danke an die Macher des Global Excel Summit und an Mourad Louha für den Hinweis.
Mein VBA-Programm liefert eine „merkwürdige“ Fehlermeldung. Warum kann ein Tabellenblatt nicht ausgeblendet werden?
Die Ursache ist schnell gefunden – es gibt nur ein Tabellenblatt – und dieses ein darf ich natürlich nicht ausblenden … Also schnell überprüft, wie viele Blätter sichtbar (xlSheetVisible) sind.
Unabhängig
davon möchte ich Ihnen nochmals für die sehr gelungene Onlineschulung am Freitag
danken.
Sehr
praxisnah und super erklärt! Ich freue ich schon auf PowerBI im September.
Bei dem File gibt es noch ein kleines Problem
Formula.Firewall: Abfrage ‚Tabelle 1‘ verweist auf andere Abfragen oder Schritte und kann daher nicht direkt auf eine Datenquelle zugreifen. Erstellen Sie diese Datenkombination neu.
Ich kann mir dies im Moment nicht im Detail ansehen (Pfad scheint korrekt, Files vorhanden), werde aber am Nachmittag nach Anleitung versuchen, dies „nachzubauen“.
Könnte ein Kompatibilitätsproblem sein (Excel-Version). Bekomme vor öffnen von Power Query diese Meldung:
Kompatibilitätswarnung: Die Abfragen in dieser Arbeitsmappe sind u.U. nicht mit Ihrer aktuellen Version von Excel kompatibel.
Hallo Herr Martin,
Ihre
Liste funktioniert doch – es waren meine Sicherheitseinstellungen.
#“Added Index“[Artikelname] ist die Spalte aus der die
Daten gruppiert werden.
[Index] – ab dieser Position wird gruppiert
],[#“Artikel (2).Anzahl“] – so viele Elemente werden
gruppiert
Steht ein Wert beispielsweise drei Mal in der Liste, können die letzten zwei Werte gelöscht werden. Dies erreicht man mit dem Befehl „Duplikate entfernen“, den Sie in Home / Zeilen verringern / Zeilen entfernen finden.
Eine Teilnehmerin der Excelschulung fragte heute, wie man mehrere Blätter mit EINEM Klick einblenden könne. Ausblenden sei ja kein Problem:
Aber einblenden?
Ich habe noch einmal überlegt: Start / Zellen / Format / Ausblenden und Einblenden / Blatt einblenden zeigt den gleichen Dialog, mit man Blätter nur einzeln einblenden kann:
Und im VBA-Editor? Auch dort nur einzeln. Vielleicht ein bisschen schneller:
Also doch ein Makro … Aber das wollte sie nicht … Tja …
Gestern in der Excelschulung. Ich zeige, dass man beim Fixieren den Cursor in die Zelle setzt und alle Zeilen über der aktiven Zelle und alle Spalten davor werden fixiert.
Eine Teilnehmerin fragt, ob es möglich sei die Fixierung nun so zu ändern, dass nur noch die Zeilen fixiert sind.
Leider nein: zwei Schritte sind nötig: Fixierung aufheben und dann neu fixieren.
Wir haben in
unserem Dokumentenlenkungssystem eine Vorlage für Excel mit spezifischen
Eigenschaften (siehe Bild mit den teilweise kundenspezifischen Eigenschaften).
Damit in Excel
beim ausdrucken die wesentlichen Informationen in Kopf und Fußzeile erscheinen,
müssen wir das alles sehr aufwändig händisch in allen Tabellenblättern pflegen.
Was natürlich sehr fehlerträchtig ist…
Ich habe mit
meinen sehr bescheidenen Kenntnissen mal versucht, irgendwie mit VBA da an die
Info ranzukommen, so:
Sub Test()
rw = 1
Worksheets(1).Activate
For Each p In ActiveWorkbook.CustomDocumentProperties
Cells(rw, 1).Value = p.Name
Cells(rw, 2).Value = p.Value
rw = rw + 1
Next
End Sub
Im Ergebnis allerdings ohne Erfolg, da kaum Werte so rauslesbar sind, vor allem nicht die spezifischen. Das wäre auch nur die halbe Miete gewesen, da ja das Einbringen der Info in die Kopf- und Fußzeile nochmal ein separates Problem darstellt, für die ich aktuell keine Idee zur Lösung habe… Kennen Sie vielleicht ein paar VBA-Kniffe, wie ich hier vielleicht weiterkomme?
Hallo Herr F.,
und so geht es:
mit
Dim i As Integer
On Error Resume Next
For i = 1 To ThisWorkbook.ContentTypeProperties.Count
Hallo Herr Martin, das mit der Autokorrektur funktioniert leider nur dann, wenn sich während des Schreibens nicht automatisch die Sprache ändert.Haben Sie in der Email z.B. englischsprachige Passagen, so kann es passieren, dass das System im Hintergrund auf einmal auf Englisch umstellt.Wenn Sie dann „lg“ eingeben, bleibt auch in der Email „lg“ stehen.Viele Grüße
Danke für den Hinweis, Herr H., das ist richtig: wenn Sie oder Outlook die Sprache umstellen (Übrigens: in Excel, Word & co ist dies anders!), stellt das Programm eine andere Liste der AutoKorrektureinträge zur Verfügung. Und damit „verschwinden“ auch selbst erstellte Einträge, die an die Sprache gebunden sind. schöne Grüße und trotzdem viel Spaß mit Outlook wünscht ::: Rene Martin
Ein Kurs gehalten. Die Teilnehmer hatten englische Oberfläche; spanische Tastatur. Ich habe bei mir diese beiden Sprachpakete installiert; in EXCEL umgeschaltet – und nun sieht mein Outlook wie folgt aus:
Okay; ich kann damit leben; aber komisch ist es schon …
Ich erhalte eine große Anzahl an maschinell erstellten Dateien. Speichere sie in einem Ordner und öffne eine der Dateien aus dem Explorer per Doppelklick:
Eine Fehlermeldung ist die Folge:
Die Datei wird geöffnet, aber jede Zeile wird in der ersten Zelle dargestellt. Getrennt durch Komma – klar CSV.
Ich schaue mir die Datei im Editor an – das ist keine CSV-Datei!
Was ist passiert? Da hat jemand CSV-Dateien mit einem Programm (VBA?) geöffnet und anschließend als Excelmappe gespeichert. Allerdings mit der Endung CSV! Perfide!
Interessante Frage: wie kann ich herausfinden, in welchem Programm die Datei erstellt wurde und was eigentlich „in“ der Datei ist? – Ich weiß es nicht ….
Amüsant. Während Inquire auch ausgeblendete Blätter anzeigt (sowohl hidden als auch very hidden)
zeigt PowerQuery nut die sichtbaren Blätter an:
Nein! Nicht ganz. Wenn man die Daten nun transformiert und zurück zur Source wechselt, so sieht man auch dort alle Blätter – egal ob sichtbar oder ausgeblendet:
Danke an Dominique Dauphin für diesen wertvollen Hinweis!
Aber kann diesen
Bug gerne noch einmal veröffentlichen.
Andererseits – ich bin leider kein MVP und habe auch keinen direkten Kontakt zu Microsoft. Es gibt eine Seite, über die man Fehler melden kann – allerdings bin ich bei der Anmeldung gescheitert …
Hallo Herr
Martin,
ich danke Ihnen
für Ihre schnelle Antwort.
Nun fürchte ich,
am nächsten Wochenende ihre komplette Web-Seite lesen zu müssen.
Nächste Woche darf ich Excel in Spanien unterrichten. Ich habe mir die Oberfläche angesehen. Die Übersetzung „bold“ (fett) in „negrita“ finde ich amüsant – nicht gordo oder grasiente, grueso oder espeso.
Und ja – ich weiß: ein Fachbegriff aus der Drucktechnik. María Moliner schreibt: „Se aplica a las letras de imprenta de trazo mucho más grueso que el de las usadas corrientemente en el texto y que destacan notablemente entre éstas.“
Eine Liste mit Überschriften. Die Spalte H hat eine sehr lange Überschft.
Ich erstelle eine 3D-Karte (Einfügen / Touren). Excel kummuliert die Dauer der Sonnenstunden pro Tag.
Ich möchte diese Aggregatfunktion ausschalten und die Einzelwerte darstellen lassen. Allerdings: bei langen Überschriften ist es sehr mühsam mit der Maus das Dropdownfeld zu treffen … Irgendwann schaffe ich es.
Ich habe eine Tabelle. Ich lege einen Druckbereich fest. Ich möchte, dass Menschen zwar die Tabel drucken dürfen, aber die Daten nicht stehlen, also nicht einfach rauskopieren.
Also wird ein Schutz auf das Tabellenblatt gelegt.
Wir wissen, dass PowerQuery von Dateien Tabellenblattnamen, Namen und intelligente Tabellen anzeigt. Da der Druckbereich als Name bespeichert wird, wird er angezeigt.
Kann geladen werden und nach Excel zurückgeschrieben werden.
Und schon hat man Zugriff auf die Faten. Ohne die Datei zu entzippen, das Protect-Element zu löschen, …
[Strg] + [H]. Ich ersetze „Dawn“ durch „Fairy“. Ich schließe den Dialog.
Nun möchte ich Twix durch Raider ersetzen.
Erneut: [Strg] + [H]. Warum ist der Fokus auf dem Ersetzen-Feld und nicht auf dem Suchen-Feld. Ich muss nach oben klicken oder „springen“, um „Twix“ durch „Raider“ zu ersetzen. Jedesmal. Doof!
Die ersten dunklen Wolken am Horizont der neuen Funktion XVERWEIS.
Wenn die Funktion nicht nur einen Wert aus einer Spalte, sondern aus mehreren Spalten zurückgibt, kann man die Funktion leider nicht mit einem Doppelklick herunterziehen.
Anders als PowerBI kann man mit PowerQuery in Excel leider noch nicht auf PDFs zugreifen. Microsoft hat versprochen, dieses Feature im Frühjahr 2020 einzubauen. Ich bin gespannt.
Bis dahin: Text aus einem PDF kopieren und in Excel einfügen. Ich schaue erstaunt: Wo ist der Text?
Ich editiere die Zelle ([F2]). Der Text erscheint. Allerdings ohne Leerzeichen davor:
Ein Blick in den Dialog Zellen formatieren / Ausrichtung liefert die Antwort: durch das Kopieren wurde ein Einzug mitkopiert:
Also: Einzug raus und schon ist der Text in der Zelle!
Die Ursache: zwei Makros hatten den gleichen Namen. Könnte VBA das nicht etwas deutlicher sagen? „Systemfehler“ und „Unbekannter Fehler“ sind nicht sehr vielsagend …
Gestern in der Outlook-Schulung zeige ich, dass man mit der Tastenkombination [Umschalt] + [Entf] sich den Umweg über den Papierkorb / gelöschte Elemente / Trash sparen kann. Ein Teilnehmer meldet sich und sagt, er habe eine merkwürdig andere Meldung:
Klar – er hat die Tastenkombination [Strg9 + [Entf] gedrückt …
das ist sehr spannend, was da passiert. Ich habe die Ursache gefunden:
Die Überschrift Ihrer Tabelle ist länger als 255 Zeichen.
Sie speichern die Arbeismappe. Sie greifen mit PowerQuery auf diese Datei zu. PQ greift mit der Zeile
= Table.TransformColumnTypes(#“Höher gestufte Header“,{{„ID“, Int64.Type}, {„Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.“, type number}})
darauf zu. Wir schreiben die Tabelle als intelligente Tabelle zurück nach Excel. Tabellen dürfen maximal 255 Zeichen in der Überschrift haben. Excel schneidet die restlichen Zeichen ab.
Soweit klappt de Workflow. Wenn ich allerdings diese Datei schließe und öffne, erhalte ich die Fehlermeldung.
Die Ursache: die Überschrift endet jetzt nicht mehr auf „dolor sit amet“.
Eine weitere Fehlermeldung ist die Folge:
Sehr spannend. Lösung: Mit einer intelligenten Tabelle arbeiten! Dann ist die maximale Anzahl der Buchstaben der Überschrift begrenzt.
Outlook-Schulung. Wir diskutieren über Einträge im Kalender. Die Firmenrichtlinie verlangt: „Bitte verwenden Sie nur „gebucht“ oder „frei“.
Eine Teilnehmerin beschwert sich: „Wenn ein Termin bei mir nicht frei ist, bin ich unbedingt gebucht. Es kann auch andere Grünge haben, wenn ich außer Haus bin. Urlaub, Kur, Dienstreise, Messe, Seminar, …“ Ich gebe ihr recht: einige Begriffe in Outlook sind nicht grlücklich gewählt: „Privat“ heißt nicht unbegingt „privater Termin“, sondern; „ich möchte nciht, dass meine Kollegen sehen, was für einen Termin ich habe (beispielsweise Vorstellugnsgespräch). Den Abwesenheitsassistenten „außer Haus“ zu nennen, wurde ebenso kritisiert wie auch der Begriff „Suchordner“. Besser wäre: „gespeicherte Suche“ oder „Link auf Suchkriterien“.
Ich greife auf eine intelligente (formatierte/dynamische/strukturierte) Tabelle zu. Ich möchte in mehreren Zellen die gleiche Formel stehen haben, die ich danach leicht modifizieren kann. Also kann ich mehrere Zellen markieren und die Formel mit [Strg] beenden. Dann steht in allen Zellen die gleiche Formel, beispielsweise:
=SUMME(Tabelle1[Betrag]/Tabelle1[Prämienpunkte])
Wenn ich allerdings Formeln der Gestalt:
=[@[Quartal 1]]/@HP[[Gesamt]:[Gesamt]]
habe – also: die Spalte „Quartal 1“ wird verschoben, die Spalte „Gesamt“ bleibt fest – dann wüsste ich keine Möglichkeit, dies durch geschickte Tastatureingaben zu erzeugen. Die doppelte Klammer muss getippt werden. Oder? Wer kennt eine Lösung?
Hallo René, ich habe hier ein sehr seltsames Problem unter Windows 10 mit Excel 365 (und nur da).
bei einem User tritt nach einer Weile eine Art „Vollbildmodus“ auf (da fehlen sowas wie die „Menü Punkte„) Es tritt OHNE sein zutun auf (also kein aktives Einstellen von „Auto-hide Ribbon)
(ich
habe diese einzelnen Screenshots übereinander gelegt damit man es
besser sehen kann)
So sollte es eigentlich aussehen:
Hast Du
sowas schon mal gesehen?
Im Web finde ich nichts (auch nicht auf Deinem Blog)
Viele Grüße
Stefan
Hallo Stefan,
Es gibt API-Funktionen, mit denen bekommt man diese Symbole weg. Oder inaktiv.
Heißt: entweder sind Add-Ins installiert oder ein anderes Programm outzt die
Symbole aus Exvel raus.
Wie sieht es in Word aus?
LG :: Rene
Hallo René,
vielen Dank für Deine Info.
Wir haben es jetzt herausgefunden:
-> error appears on PC and notebook!
-> user has development pc and
notebook)
-> but Excel has no unusual Add-ins
-> even in safe-mode (Excel.exe /safe) the
error appears
-> we found a possible cause:
=> VirtuaWin: a desktop switcher tool
(see attachment IM05739548_VirtualWin.png)
=> error is reproducible when switching
desktops with VirtuaWin
=> error only appears in Excel (not in Word
or PowerPoint)
=> I assume: because Excel has a different
„window-handling“
==> we need to investigate if this is the
real cause
ich habe mich nach längerer
Pause mal wieder ans Ribbon Design gewagt.
Leider sagt mir Excel jedes Mal
nach dem Zippen und wieder in .xlsm umbenennen, die Datei sei beschädigt. Das
passiert auch wenn ich keine Änderungen am entzippten Ordner vornehme (sowohl
am Arbeitsrechner als auch am privaten Rechner)
Haben Sie vielleicht nochmal
einen Tipp? Ich scheine irgendwas falsch zu machen…
Liebe Grüße und vielen Dank
NF.
Hallo Herr Fritz,
mit Sicherheit
haben Sie einen Fehler in der XML-Ribbon-Datei. Verwenden Sie einen guten
XML-Editor? Er muss validierend sein.
Ich verwenden
Visual Studio – gibt es auch als kostenlose Version. Dort ist die Schema-Datei
für das MSO integriert.
Outlook-Schulung. Vieles fehlt in diesem – eigentlich – sehr guten Mailprogramm. Beispielsweise ist es nicht möglich die Arbeitsstunden für jeden Tag unterschiedlich anzulegen. Also beispielsweise Mo: 08.00 – 14:00 Uhr :: Di: 08:00 – 18:00 Uhr :: Mi: 14:00 – 20:00 Uhr …
Schade!
Wir haben es so gelöst, dass jeder seinen frühesten Arbeitsbeginn einträgt und sein spätestes Ende. Und die Zeiten, die er nicht arbeitet durch einen Serientermin „abwesend“ kennzeichnet. So kann jeder sehen, wer wann im Büro ist.
Amüsant. Ist Ihnen das schon aufgefallen? Wenn ich in einer intelligenten (dynamischen/formatierten/strukturierten) Tabelle eine Überschrift lösche, wird sie – je nach Spracheinstellung – durch eine andere (beispielsweise „Spalte1“) ersetzt:
Wenn Sie allerdings eine Überschrift eingeben, die länger ist als 255 Zeichen, wird dieser Text gelöscht. DFie maximale Anzahl der Zeichen einer Überschrift beträgt 255 Zeichen.
Das hat Auswirkungen auf PowerQuery, der Daten als intelligente Tabelle zurückgibt. Ist eine Überschrift länger, wird der restliche Text abgeschnitten. Werden gleiche Überschriften importiert, werden sie durchnummeriert.
Dass hiner AutoSum die Funktion SUM steckt, verstanden die Teilnehmer. Aber warum erzeugt ein Klick auf die Schaltfläche „Count Numbers“ die Funktion COUNT?
Excelschulung. Wir diskutieren über den Unterschied zwischen Zellen formatieren (Nachkommastellen „wegformatieren“) und der Funktion RUNDEN. Ein Teilnehmer beschwert sich, dass dann die Summe der gerundeten Werte möglicherweise nicht mehr mit der urprünglichen Summe übereinstimmt. Ich zeige ihm ein Diagramm:
Manchmal ist es irritierend. Aufgabe in der Excelschulung: Erhöhen Sie den Jahresbeitrag der Blue-Mitgleider um 5 Euro, der anderen Mitglieder um 10 Euro. Ein Teilnehmer arbeitet mit einer Hilfsspalte:
=WENN(J2=“Blue“;5;10)
Ich sage, dass dieses Vorgehen völlig okay sei, dass er aber auch direkt in der WENN-Funktion rechnen könne. Ich korrigiere und klicke auf die Zelle J2:
=WENN(J2=“Blue“;H25;10)
Der Teilnehmer schaut mich irritiert an. Ich füge ein Pluszeichen ein – und schon wird klar, wie gerechnet wurde:
Der zweite Teil muss natürlich noch eingefügt werden:
Excelschulung. Wir üben Tabellen: sortieren, filtern und Pivottabellen. Wir erstellen die erste Pivottabelle. Wir gruppieren die Verkäufer. Ein Teilnehmer meldet sich und sagt, dass bei ihm keine Verkäufer angezeigt werden. Ich schaue mir seine Pivottabelle an:
Ich habe zwei Mal hinschauen müssen, dann habe ich entdeckt, dass in der Tabelle noch ein Filter eingeschaltet war. Dadurch sind die ersten Zeilen ausgeblendet und dadurch werden auch nicht Daten angezeigt. Perfide!
Eigentlich klar, logisch, verständlich, konsequent und einleuchtend – dennoch: auf den ersten Blick erstaunt es: Warum kann man in einer intelligenten (strukturierten, formatierten, dynamischen) Tabelle kein Teilergebnis erstellen?
Mourad Louha hat auf seiner Seite https://de.excel-translator.de/ ein mächtiges Werkezug geschaffen, das Begriffe, die in Excel verwendet werden, in anderen Sprachen auflistet. Er hat auch auf dem Excelstammtisch Hessen im Januar 2020 gezeigt, welche abstrusen Übersetzungen aus dem Hause Microsoft kommen.
So etwas wünsche ich mir für Word. Eigentlich auch für PowerPoint, Outlook und alle anderen Programme.
Ich unterrichte zur Zeit mit englischsprachiger Oberfläche. In der Mittagspause öffne ich ein Dokument und bin über die Kopfzeile erstaunt:
Mit [Alt] + [F9] kann man die Feldfunktionen einsehen. Richtig: die Formatvorlage Überschriftxx wird übersetzt zu Headingxx. Jedoch nicht in der Feldfunktion. Ärgerlich!
Amüsant. Ich habe eine Liste von deutschen Städten – sortiert nach Größe. Ich wandle sie in Excel über Daten / Geografie in Geodaten um:
Anschießend lasse ich mir den Leader(s) anzeigen. (Geht auch mit =B3.Leader(s). )Klappt prima – nur Berlin hat keinen. Oder wird für den (Ober)bürgermeister nicht erkannt. Ebenso wie Leipzig. Aber auch Münster, Karlsruhe, Magdeburg, Saarbrücken und Heidelberg …
Randbemerkung: Geografie oder Geographie? – Microsoft konnte sich wohl nicht so recht entscheiden …
In Excelschulungen erzähle ich immer, wenn ich den Assistenten „Daten / Text in Spalten“ vorstelle, dass es in Excel keine Tabulatoren gibt – man kann die Grundeinstellung (die beim Import von Textdateien verwendet wird) ruhig stehenlassen:
Ich werde eines Besseren belehrt: Wenn Sie ein Worddokument oder einen Mailtext aus Outlook nach Excel kopieren, werden die Tabstopps durch Spalten getrennt:
Ein Worddokument mit Tabulatoren… in Excel
Wenn Sie dagegen Texte IN Zellen kopieren (das heißt: die Zelle mit [F2] editieren) und dann den kopierten Text einfügen, stehen Tabstopps in Zellen. Merkwürdigerweise sieht man sie nicht, wenn der Cursor AUF der Zelle steht – lediglich IN der Zelle werden sie angezeigt:
Der Assistent „Daten / Text in Spalten“ interpretiert die Tabstopps als Leerzeichen!?!
Daten / Text in Spalten mit Tabstopps Daten / Text in Spalten mit Leerzeichen
Die Funktion CODE liefert den Wert 32 – den gleichen wie Leerzeichen!?!
Wenn man in den Ersetzen-Dialog einen Tabstopp hineinkopiert und durch ein Leerzeichen ersetzen lässt, funktioniert dies hervorragend.
Fazit: Finger weg von Tabstopps in Exceltabellen! Excel behandelt diese Zeichen nicht konsequent als eigene Zeichen – eine Unterscheidung durch Leerzeichen ist nicht an allen Stellen durchgeführt. Und wenn ein Anwender Texte in die Zellen eingefügt hat – dann bleibt nur noch der Ersetzen-Assistent oder die WECHSELN-Funktion.
ich habe auf einem Recht neuen Mac ein aufwändiges xls Dokument erstellt und habe auch häufig die Dropdown Funktion verwendet. Bei mir funktioniert diese Funktion in jedem Tabellenblatt. Jetzt muss mein Chef mit einem Microsoft Computer diese xls auch regelmäßig benutzen. Alle Funktionen sind in seinem xls zu sehen, aber alle Dropdown Funktionen sind bei ihm alle nicht sichtbar. Woran kann es liegen? Mac und Microsoft sind ja an sich kompatibel. Liegt es an seiner alten Version (2007)?
Vielen lieben Dank,
Anne
Kennst jemand von euch die Antwort? Ich bin leider überfragt …
ich habe ein Tool gebaut wo ich im Namensmanager auf die
Funktion Bereich.Verschieben nutze, um das Diagramm dynamisch zu gestallten.
Nun möchte Ich die Mappe vor neugierigen Blicken
schützen. Über Blatt- und Arbeitsmappeschützen klappt das auch ausreichend,
allerdings ist der Namensmanager komplett einsehbar.
Haben Sie eine Idee, wir ich den Namensmanager verbergen
kann?
Ich freue mich von Ihnen zu hören.
Viele Grüße,
Hallo Herr W.,
das Ausblenden funktioniert. Leider nicht das Symbol,
aber die Gruppe „Definierte Namen“. Haben Sie die Excel-Datei schon
einmal entzippt und nachgeschaut?
In der Datei „.rels“ im Ordner _rels muss ein
Verweis auf die Datei stehen:
In der Datei ribbon.xml wird die Gruppe ausgeblendet:
<ribbon startFromScratch=“false“>
<tabs>
<tab
idMso=“TabFormulas“>
<group
idMso=“GroupNamedCells“ visible=“false“>
</group>
</tab>
</tabs>
</ribbon>
Kommen Sie damit klar?
Schöne Grüße
Rene Martin
PS: Der Anwender kann den Namensmanager immer noch über
[Strg] + [F3] öffnen. Das könnte man mit VBA wegprogrammieren. Dann könnte er
immer noch ein Symbol in die Symbolleiste für den Schnellzugriff legen …
Ich habe eine Excelliste, in der trage ich Informationen zu meinen Schulungen ein. Ich habe eine Spalte „Stunden außerhalb“, in der ich bislang Texte eingetragen habe wie „2 x 24“ oder „3 x 10“. Nun hätte ich gerne die Summe der Tage ermittelt, also die Zahlen, die vor dem „x“ stehen summiert. Nichts leichter als das:
=LINKS(I351;SUCHEN(„x“;I351)-2)
liefert die Zahlen. Allerdings: steht kein Text in der Zelle, so liefert SUCHEN(„x“;I351) einen Fehler. Der kann bequem mit WENNFEHLER abgefangen werden:
=WENNFEHLER(LINKS(I351;SUCHEN(„x“;I351)-2);““)
Das Ergebnis:
Darauf setzte ich eine Pivottabelle auf und ändere den Vorschlag „ANZAHL“ in „SUMME“:
Eine Fehlermeldung ist die Folge. Vielleicht hängt es mit dem „“ der Funktion WENNFEHLER zusammen? Ich ändere die Formel in:
=WENNFEHLER(LINKS(I351;SUCHEN(„x“;I351)-2);0)
Die leeren Zellen werden mit einer „0“ aufgefüllt. Sieht nicht schön aus. Also ändere ich das Zahlenformat in ein benutzerdefiniertes:
0;-0;;
Und wundere mich erneut. Alles ist weg!
Langsam dämmert es mir: klar – die Funktion LINKS liefert einen Text. Das heißt: der Text „2“ wird durch das benutzerdefinierte Zahlenformat weggeblendet. Und: Excel erkennt keine Zahlen für die Pivottabelle, die summiert werden könnten. Also noch einmal die Formel anpassen. Der Text muss in eine Zahl konvertiert werden: mit WERT, mit „–“ oder mit „*1“
Gestern in der Outlook-Schulung hat ein Teilnehmer gefragt, warum Outlook (Kontakte) nicht mehr als Excelmappe speichern kann. Die Antwort – ich weiß nicht, warum diese Export-Option entfernt wurde. Zwar kann man in eine CSV-Datei speichern:
Das Öffnen durch Excel funktioniert nicht richtig
weil die Daten durch Kommata getrennt wurden. Benennt man die Datei mit der Endung TXT und öffnet sie nun Excel, wo mal das Komma als Trennzeichen wählt, dann klappt es:
Jedoch: schon einige wenige Tests zeige, dass DIES nicht der Weisheit letzter Schluss ist … Wenn ich Kontakte von einem Rechner zu einem anderen exportieren möchte, so verschicke ich sie per Mail.
Ein Dankeschön an Mourad Louha für seinen Vortrag beim Excelstammtisch Hessen zum Thema Internationalisierung bei Excel und worauf geachtet werden muss, wenn Dateien von einer Sprachregion in eine andere geschickt werden.
Amüsiert habe ich mich über seine Forlie „Kuriositäten“, in welcher er amüsante Dinge bei der Übersetzung einiger Funktionen zeigte: die längste Excelformel (AVRUND.GJELDENDE.MULTIPLUM.OPP.MATEMATISK im Norwegischen), SE.NON.DISP., die einen Punkt am Ende hat, CURRENCY – die Übersetzung von DOLLAR im Griechischen …
Ein Dankeschön an Mourad Louha, der mir seine Präsentzation zur Verfügung gestellt hat.
Heute in der Excelschulung. Ich zeige die Datenüberprüfung. Eine Artikelliste. In die Mengenspalte darf nur eine ganze Zahl eingetragen werden. Ein Teilnehmer fragt, ob man die Eingabe auch so begrenzen kann, dass die Gesamtmenge < 100 sein muss. Klar – kein Problem: Benutzerdefiniert – =SUMME(D:D)<100
Klappt.
Und dann möchte der Teilnehmer, dass die Eingabe nur ganze Zahlen akzeptiert. Leider kann man keine zwei Datenüberprüfungen miteinander verketten.
Man müsste die Formel erweitern, beispielsweise so:
Danke an die Einladung zum Excelstammtisch in Hessen. Auch in Frankfurt – wie bei uns in München – eine geballte Ladung an Wissen, Freude über Excel, Staunen und Spaß.
Klasse war es.
Danke auch an Andreas Thehos, der sich mit dem gleichen Problem rumgeschlagen hat wie ich gestern. Nur: die Aufgabenstellung war eine andere.
Gegeben sei eine Namensliste. Sie ist Basis für eine Pivottabelle. Es erstaunt, dass ein Name zwei Mal auftaucht. Und nein: es sind keine Leerzeichen hinter dem Namen.
Die Ursache: auch hier hat sich ein geschütztes Leerzeichen (ein non-breaking space) mit dem CODE 160 zwischen den Vornamen und Nachnamen geschummelt. Wie passiert so etwas? Entweder wurden die Daten aus einer Internetseite entnommen – oder von einem Word-Dokument. DORT kann man mit der Tastenkombination [Umschalt] + [Strg] + [Leertaste].
Erstaunlich. Ich kopiere eine Liste von einer Internetseite. Und möchte die Informationen einer Spalte trennen. Ich verwende den Assistenten Daten / Text in Spalten und bin verblüfft, dass die Texte nicht (am Leerzeichen) getrennt werden:
Eine Analyse mit der Funktion =CODE(TEIL(A2;LÄNGE(„Argentinien“)+1;1)) liefert das Ergebnis, dass es sich nicht um ein Leerzeichen (32), sondern um ein geschütztes Leerzeichen (160) handelt. Es entspricht dem (non-breaking space). Zum Glück kann man es aus dem Text kopieren und daran trennen:
Im ersten Moment erstaunlich; allerdings konsequent, korrekt und nützlich: sind mehrere Zellen miteinander verbunden, liefert die Funktion SEQUENZ die Fehlermeldung #ÜBERLAUF – das heißt: die Werte werden nciht über die verbundenen Zellen geschrieben.
Ich kopiere eine Liste aus dem Internet nach Excel. Erstaunt stelle ich fest, dass ich in der Zelle einen Bindestrich sehe – in der Bearbeitungsleiste jedoch nicht:
Die Funktion =CODE(TEIL(B1;6;1)) liefert Aufschluss: es handelt sich um den ASCII-Code 173 – das entspricht dem HTML-Zeichen oder: ein weiches Trennzeichen, das in Excel allerdings seine Funktion verliert.
Gewundert habe ich mich schon: ich erstelle eine Formel mit einem Bezug auf eine (intelligente/formatierte/dynamische) Tabelle:
=XVERWEIS($F$2;tbl_Staaten[Staat];tbl_Staaten[Jahr der Unabhängigkeit];;;1)
Mein Erstaunen ist groß als ich die Formel nach rechts ziehe:
=XVERWEIS($F$2;tbl_Staaten[Jahr der Unabhängigkeit];tbl_Staaten[Staat];;;1)
Der absolute Bezug $F$2 bleibt. Die konstante Zahl 1 bleibt. Aber die beiden Spalten werden vertauscht. Klar – ein Bezug auf eine Spalte einer Tabelle ist immer relativ. Da die Formel beim nach Rechts-Ziehen nicht „weiterwandern“ kann, beginnen die Bezüge von vorne. Und wie macht man einen absoluten Bezug innerhalb einer Tabelle? Da war doch mal was?!
Richtig: Andreas Thehos hat es einmal gezeigt. Man muss die Formel folgendermaßen schreiben (mit doppelten eckigen Klammern).
Gibt es eine Obergrenze für die Funktion SEQUENZ? Kann ich damit ein Tabellenblatt vollschreiben? Die Antworten: Obergrenze – ja; alle Zellen füllen – nein!
Ich verstehe es nicht: In der Zelle G1 steht die Funktion ZUFALLSBEREICH(1;5) und liefert folglich eine ganze Zahl zwischen einschließlich 1 und 5. Die Funktion SEQUENZ in Zelle 1 baut so viele Zeilen (1 bis 5) und zwei Spalten auf.
Bei einigen Zahlenwerten der Funktion ZUFALLSBEREICH kommt es zu einer Fehlermeldung: ÜBERLAUF:
Auch das Editieren mit [F9] liefert nicht die Lösung:
Oder doch? Ein Dankeschön an Jürgen Diedmann, der mir folgenden Artikel zum Thema Speichern und Abstürze zugeschickt hat. Wichtig für alle! Damit (nicht nur) Excel nicht (mehr so sehr) nervt.
Speicher und Sicherheitsfunktionen nach Absturz o.ä.
Grundsätzliches: In den Optionen sollten eingestellt sein:
Kategorie Speichern / Auto-Wiederherstellen-Informationen speichern alle 1 Minute Dateispeicherort für AutoWiederherstellen: So wie abgebildet, Ort niemals ändern, WICHTIG
Einstellungen mit OK bestätigen
Grundsätzliche Unterscheidung zwischen
Nicht gespeicherte Arbeitsmappe
Bereits gespeicherte Dateien
Nicht gespeicherte Arbeitsmappe
Datei wurde noch nicht unter einem Namen gespeichert bzw. abgelegt. Datei wird von Excel automatisch im Speicherpfad, hier (Beispiel) C:\Users\Juerg\Appdata\Local\Microsoft\Office\UnsavedFiles abgelegt.
Wiederherstellung nach Systemabsturz, Stromausfall o.ä.
Nicht gespeicherte Arbeitsmappe
Dateiname wurde noch nicht vergeben und man ist auf normalen Wegen aus Excel ausgestiegen, wie zum Beispiel rot unterlegtes Kreuz rechts oben geklickt,
Ihre Änderung an dieser Datei speichern?……Nicht speichern Egal wann diese Datei wiederhergestellt werden soll, sie wurde auf der Festplatte abgespeichert. Wichtig ist nur, dass die Datei mind. 1 Minute, (Einstellung Optionen) geöffnet war.
Wiederherstellung:
Excel öffnen…
Weitere Arbeitsmappen rechts unten anklicken, es erscheint…
Nicht gespeicherte Arbeitsmappen wiederherstellen anklicken.
Es erscheint…
Hier sind nun alle Dateien abgelegt, welche automatisch unter dem in den Optionen aufgeführten Speicherort abgespeichert wurden. Datei anklicken und alles wird gut. Daher der Hinweis, den Pfad in den Optionen nie ändern.
Die gewünschte Datei wird so dann wiederhergestellt mit folgenden Hinweisen:
Wiederhergestellte Datei… sofort Speichern unter…
Gespeicherte Arbeitsmappe
Eine beliebige Arbeitsmappe wurde erstellt und abgespeichert, welche nach einer Minute „zusammenbricht“. Wir provozieren dieses einmal mit dem Task-Manager. Str+Alt+Entf drücken, Task-Manager, Excel anklicken, Task beenden drücken und den Manager wieder verlassen. Excel ist und „unsanft“ beendet worden.
Nun wird Excel wieder gestartet… Im Startbildschirm erscheint im unteren Bereich…
Nach dem Klick in die Fläche kommt dann der eigentliche Bildschirm mit den Wiederherstellungsoptionen
Ein Klick in die gewünschte Rubrik Arbeitsmappe und die Datei ist wieder auf dem Schirm. Es geht lediglich die Arbeit 1 Minute verloren
Mit den drei Funktionen BEREICH.VERSCHIEBEN, INDIREKT und XVERWEIS kann man einen dynamischen bereich aufspannen. Diese drei Funktionen kann man als Namen speichern (ich habe sie mal Jahr1, Jahr2 und Jahr3 genannt).
Die Namen mit den Funktionen BEREICH.VERSCHIEBEN und XVERWEIS kann man wunderbar in einem Diagramm verwenden:
Schade eigentlich. Ab und zu benötige ich die benutzerdefinierte Formatierung der Form
[Rot][<-2]0;[Blau][>5]0;Standard
Es gibt Stellen in Excel, in denen nicht mit der bedingten Formatierung gearbeitet werden kann – beispielsweise in Diagrammen. Allerdings: man kann leider nur maximal zwei Farben verwenden plus die Standardfarbe. Schade!
Die Zeilennummerierung wurde eine Zeile zu hoch angesetzt – Zeile 1 darf nicht die Zeile neben den Köpfen sein, sondern muss eine Zeile tiefer beginnen. Dann würde es stimmen!
Liebe Microsoftis: die neue Funktion EINDEUTIG ist – ebenso wie die anderen fünf neuen ARRAY-Funktionen klasse! Wirklich, ehrlich: super-spitzen Klasse! Brauchbar ohne Ende! Aber, bitte, bitte: übersetzt die Parameter ins Deutsche. Wie bei den anderen fünf Funktionen!
Ich habe zwei Mal hinschauen müssen, bis ich den Guten Rutsch gesehen habe. Beziehungsweise verstanden habe, warum der zweite Teil des Textes nicht angezeigt wird. Dann habe ich geschmunzelt.
Man sollte einen Wettbewerb ausrufen. Wer hat Lust mitzumachen? Die schönsten Excel-Weihnachtsbäume. Ich fange man an:
Weihnachtsbaum I. Mit der Funktion WIEDERHOLEN
Oder mit einem Punkte-Diagramm (XY-Diagramm):
Oder mit der Bedingten Formatierung. Damit kann man grüne Kästchen erzeugen (mit den Funktionen ZEILE() und SPALTE(), aber auch die Ampeln als Christbaumkugeln verwenden. Eine Funktion ZUFALLSZAHL() oder ZUFALLSBEREICH hilft:
Und schließlich mit einem Liniendiagramm dessen Flächen ausgefüllt sind:
Boah – muss ich mich wieder ärgern! Ich schaue mir gerade die beiden neuen Funktionen XVERWEIS und XVERGLEICH an (wirklich klasse!) und werfe einen Blick auf die Hilfeseite von Microsoft:
Das Beispiel 1 ist völlig falsch! Es wird keine Platzhaltersuche (4) verwendet, sondern eine exakte Übereinstimmung oder das nächst größere Element. Deshalb liefert 1 das Ergebnis 2! Der Parameterwert 4 würde #NV liefern, weil Gra? nicht vorhanden ist. Nur Gra?? oder Gra*. Boah! Das Boah geht weiter: Beispiel 2: Der Satz „Beachten Sie, dass diese Methode erfordert, dass Ihre Daten in absteigender Reihenfolge sortiert sind.“ Nein – das erfordert sie nicht – es wird der Wert darüber ODER darunter zurückgegeben. Beispiel 3 ist korrekt; bei Beispiel 4 hätte ich mir eine vollständige Übersetzung gewünscht: =XVERGLEICH(4;{5;4;3;2;1}) Nun ja!
Da habe ich eine Anfrage von Herrn Diedmann erhalten, ob er etwas auf meinem Blog veröffentlichen kann. Na klar kann er – nervige Sache mit einer hervorragenden Lösung. Es geht darum in einer Pivottabelle nur die Nullwerte mit den entsprechenden Daten herauszufiltern. Lesen Sie selbst:
Sehr geehrter Martin,
Hier die Geschichte, die den Stein ins Rollen brachte.
Durch ein Lernstudio habe ich vor Ort bei einer
Getränkefirma Excel Unterricht vor Ort gegeben.
Es waren mit verschiedenen Office Versionen gearbeitet, von
2010 bis 2019
Bei Pivot war die Grundlage eine Tabelle von YouTube vom
Andreas Thehos.
Es sind Automobilverkäufer, die verschiedene Modell anbieten. Einige der Verkäufer haben in einem Zeitraum aber nicht bestimmte Modelle verkauft.
Lösung für Herrn N.….. Also.. Pivot Tabelle erstellen aus den Daten der BMW-Verkäufern
Pivot Tools… Entwurfsansicht… Berichtslayout… in Tabellenformat…
Es erscheint…
Weiter… so wie angezeigt. Modell anklicken, rechte Maustaste, Feldeinstellungen, Elemente ohne Daten auswählen und OK
Wie unten, ABEL Ergebnis anklicken, rechte Maustaste, Teilergebnisse keine und OK…
Die Nullwerte auszufiltern war und ist ja auch kein Problem.
Nun kam die Frage, Kann ich alle Verkäufer mit Nullwerte untereinander
ausfiltern?
Das Feld „Summe vom Endpreis“ zeigte keine
Filtermöglichkeit.
Aber, die Office Version 2010 hatte diese Filtermöglichkeit.
Das war die Herausforderung. Eine Lösung ohne VBA, denn das
können sie den Wenigsten vermitteln.
Die Lösung war letzthin und endlich, dass ich aus lauter
Verzweiflung einfach den Spaltenname über die projizierte Überschrift
geschrieben habe und schwupps…. Die Spalte ließ sich filtern.
Und….. Ratatataaaaaaa…..
Wenn jetzt noch Leere Daten als Null anzeige gesetzt wird…
Evtl. ist das das erste Thema, welches ich bei ihnen veröffentlichen kann.
Ansonsten zunächst frohe Fest und guten Rutsch ins neue
Jahr.
Die Aufgabe ist einfach. Zu einem Text (einem Buchstaben) sollen Kreissymbole dargestellt werden. Das kann man prima mit der Bedingten Formatierung erledigen. Allerdings: sie akzeptiert keine Texte. Also muss man den Text in eine Zahl umwandeln – beispielsweise mit der Funktion CODE (oder UNICODE). Darauf kann man eine Bedingte Formatierung aufsetzen.
Auch dieses Problem hat mich eine Stunde Zeit gekostet.
Ich erstelle ein umfangreiches Programm für einen Kunden. Die Registerkarten sind ausgeblendet:
Ich starte das Programm mit dem Ausschalten der Bildschirmaktualisierung:
Application.ScreenUpdating = False
Ich blende die Registerkarten per VBA wieder ein:
ActiveWindow.DisplayWorkbookTabs = True
Was passiert? Nichts!
Man muss vor dem Anzeigen die Bildschirmaktualisierung wieder einschalten! ( Application.ScreenUpdating = True). Dann erst werden die Tabs wieder angezeigt:
Übrigens: Es ist erstaunlich, dass die Eigenschaft „DisplayWorkbookTabs“ eine Eigenschaft von ActiveWindow und nicht von ActiveWorkbook ist!
Boah – ist das mies! Zwei Stunden lang habe ich gesucht. Und dann gefunden.
Ich habe eine Datei mit zwei Tabellenblättern. Eines enthält eine Datenliste, ein zweites eine Datenüberprüfung mit einer Liste, die diese Daten aus dem anderen Blatt holt:
Per VBA ziehe ich nun diese beiden Blätter (einzeln!) in eine Masterdatei (man kann es auch per Hand machen. Die Verknüpfung verweist nun auf die alte Datei:
Der Code:
Dim xlFremdeDatei As Workbook
Dim xlEigeneDatei As Workbook
Dim xlFremdesBlattDaten As Worksheet
Dim xlFremdesBlattDatenüberprüfung As Worksheet
Set xlEigeneDatei = ThisWorkbook
Set xlFremdeDatei = Application.Workbooks.Open("D:\Eigene Dateien\Excel\Beispieltabellen\3Musketiere.xlsx")
xlFremdeDatei.Worksheets(2).Copy Before:=xlEigeneDatei.Worksheets(1)
Set xlFremdesBlattDatenüberprüfung = xlEigeneDatei.Worksheets(1)
xlFremdeDatei.Worksheets(1).Copy Before:=xlEigeneDatei.Worksheets(1)
Set xlFremdesBlattDaten = xlEigeneDatei.Worksheets(1)
xlFremdeDatei.Close SaveChanges:=False
xlEigeneDatei.Save
Beide Dateien werden geschlossen, die Masterdatei wird geöffnet. Unter Datei / Informationen wird angezeigt, dass sich in dieser Datei eine Verknüpfung (auf eine andere Datei) befindet, die man hier nicht löschen kann. Klar!
Nun setze ich in der Zelle mit der Datenüberprüfung per Hand oder per VBA die Verknüpfung auf die eigene Datei:
Excel zeigt noch immer (unter Datei / Informationen) an, dass sich in der Datei eine Verknüpfung befindet. Diesen Eintrag kann ich nicht löschen! Erst durch das Schließen und wieder Öffnen der Datei ist er verschwunden.
Das Erstaunliche: werden die Tabellenblätter gelöscht, wird die Verknüpfung nicht angezeigt. Werden die Verknüpfungen „nur“ behoben, bleibt der Eintrag noch in den Informationen stehen.
Zwei Stunden habe ich benötigt, um das herauszufinden. Mies!
Heute in der PowerQuery-Schulung kam die Frage, ob man ab einer bestimmten Spalten alle anderen Spalten bis zum Ende der Tabelle löschen könne:
Schöne Frage. Geht aber nicht mit den Hausmittel. Ein paar Zeilen Code M wären nötig.
Ich habe vorgeschlagen von der ersten bis zu der Spalte mit der [Umschalttaste] zu markieren und anschließend „Andere Spalten entfernen“. Ist ein Klick mehr. Geht aber auch …
Excelschulung heute. Ich zeige, wie man eine Zeile einfügen kann: [Strg] + [+] oder über das Kontextmenü der Zeilenköpfe. Ein Teilnehmer meldet sich und sagt, dass es bei ihm nicht funktioniert: es werden keine Zeilen eingefügt.
Ich schaue auf seinen Bildschirm und lache. Er hat schnell verstanden, warum ich lache.
Habt ihr schon einmal Ribbon selbst mit einer XML-Datei erstellt. Ein validierender XML-Editor ist wichtig (wer Visual Studio hat, ist gut beraten).
Man fragt sich, welcher Praktikant den Befehl checkBox und nicht Checkbox (auch nicht CheckBox) genannt hat. Buttons habe das Attribut size mit den Werten „large“ und „normal“. Hum!
manchmal freue ich mich auch über Excel. Kennt ihr das? Probleme, die nicht lösbar scheinen, finden doch eine Lösung.
Kennt ihr die neuen Array-Funktionen in Excel 365? Beispielsweise ZUFALLSMATRIX:
=ZUFALLSMATRIX(10;1;1;10;WAHR)
generiert zehn zufällige ganze Zahlen zwischen einschließlich 1 und 10. Okay.
=SUMME(ZUFALLSMATRIX(10;1;1;10;WAHR))
summiert zehn zufällige Zahlen und liefert ein Ergebnis zwischen 10 und 100. Okay.
Vor einer Weile wollte ein Kunde aus einer Liste von zirka 100.000
Werten 100 Werte zufällig herausgreifen und von diesen den Durchschnitt
berechnen. Mit einer Hilfsspalte ist das kein Problem. Jedoch scheinen
die Matrixformeln zu versagen, weil {…ZUFALLSBEREICH …} 100 Mal die
gleiche Zufallszahl liefert und nicht 100 verschiedene. Die Lösung für
dieses Problem liefert ZUFALLSMATRIX:
berechnet einen Durchschnitt für diese 100 zufällig gefundenen Werte.
[F9] zum Neuberechnen liefert einen anderen Wert. Markiert man einen
Teil der Formel, dann zeigt [F9], dass tatsächlich zufällige Werte
ermittelt wurden. Die Zahl 100 kann ausgelagert und erhöht werden. Je
mehr man sich 100000 nähert, umso mehr nähert sich der
Zufalls-Mittelwert dem echten Mittelwert.
Und wer sich nun fragt:
„wer braucht denn so etwas?“ – Das Teilchen heißt
Monte-Carlo-Simulation und wird in Mathematik, Physik, Finanzwesen, …
seit über 60 Jahren angewandt. Weite Infos – beispielsweise Wikipedia.
Und ich bin begeistert – Excel rechnet so wie ich will!
Verständlich, aber dennoch erstaunlich: Wenn eine Liste Datumsangaben in der ersten Zeile hat und wenn man diese Liste in eine (intelligente/dynamische) Tabelle verwandelt, so werden diese Datumsangaben zu Text. Klaro – Feldnamen/Überschriften müssen Text sein.
Beim Zurückkonvertieren in einen Bereich bleiben natürlich die Datumsangaben als Text stehen:
In der Schulung fragte eine Teilnehmerin, wie man eine Zeile optimal groß, also hoch machen kann. „Doppelklick“ lautete die lakonische Antwort. „Geht aber nicht, erwiderte sie. Ich schaute es mir an:
Ging tatsächlich nicht! Dann habe ich es entdeckt: In einer ausgeblendeten Spalte befand sich weiterer, längerer Text …
Ich lasse die Werte summieren. Ich lasse den Mittelwert berechnen.
Eine Teilnehmerin meldet sich und sagt, dass sie ein anderes Ergebnis habe:
Ich schaue nach – klar – sie hat die Formel:
=WENN(B5>20;B5*750;0)
Dadurch wird zwar die Summe gleich berechnet; MITTELWERT (und SUMME) übergehen den Text – bei der Zahl 0 wird jedoch die ANZAHL anders berechnet – deshalb das unterschiedliche Ergebnis beim MITTELWERT (=SUMME/ANZAHL).
Heute in der Schulung zeige ich wie man Zeilen (und Spalten) ein- und ausblendet. Und erkläre, dass das Ausblenden sehr riskant sein kann und erläutere die Gründe. Ein Teilnehmer fragt, ob die Inhalte ausgeblendeter Zellen auch gelöscht werden:
Power Query bei Ken Puls zu lernen ist ein Genuss.
Teil II
Auch deshalb (aber nicht nur deshalb), weil er auch so gerne über Excel, Ungereimtheiten und Schwächen lästert. Hier eine kleine Auswahl seiner spöttischen Bemerkungen über Power Query & co:
Der Dialog „gruppieren nach“ ist klasse – aber er zeigt die drei Pünktchen erst dann, wenn man mit der Maus darüber fährt.
Importiert man einen Bereich nach Power Query wird daraus eine Tabelle!?! Der Name der Tabelle: Tabelle1!
Power Query bei Ken Puls zu lernen ist ein Genuss.
Auch deshalb (aber nicht nur deshalb), weil er auch so gerne über Excel, Ungereimtheiten und Schwächen lästert. Hier eine kleine Auswahl seiner spöttischen Bemerkungen über Power Query & co:
Warum ist bei Dialogen so häufig der Default-Button derjenige, der am unwichtigsten ist? Kens Tipp: meistens ist der Button links von der Abbrechen-Schaltfläche der wichtige:
„Gebietsschema“: Der langsamste Dialog in PQ:
Warum ist das „schnelle Laden von Daten“ nicht Standard?
Warum zeigt ein Doppelklick auf den Rand nicht den kompletten Inhalt?
Masterclass bei den Exceldays 2019 in Sofia bei Gasper Kamensek (http://excelunplugged.com/) zum Thema „Power Pivot“. Er zeigt uns, das nach dem Erstellen einer KPI in PowerPivot zuerstet nur Zahlen zu sehen sind:
Desaktiviert man allerdings den Status und aktiviert ihn anschließend wieder von Neuem, werden die Farben korrekt angezeigt:
Klasse. Auch er nörgelt gerne: Beispielsweise darüber, dass man beim Erstellen einer Tabelle ([Strg] + [T] oder als Tabelle formatieren oder Einfügen / Tabelle nicht den Namen der (neuen) Tabelle eingeben kann:
zuallererst (wer es noch nicht gelesen hat): ich habe in die letzte Mail Abstimmungsschaltflächen eingebaut, weil ich davon ausgegangen bin, dass in JEDER Outlook-Version diese sichtbar sind. Pustekuchen – in einigen Versionen waren diese Schaltflächen nicht sichtbar – sorry, wusste ich nicht; heißt: man darf Abstimmungsschaltflächen nur firmenintern verwenden (schade, eigentlich). Danke an Angelika fürs mit-mir-Ausprobieren.
Manchmal sind die Datenpunkte in einem Diagramm wirklich sehr, sehr schwer zu markieren. Ich weiß auch keinen Trick, wie man sie „durchlaufen“ kann oder wie man sie direkt „ansteuern“ kann. Ihr?
Ein Kunde wollte eine Visualisierung seiner Daten haben. Ich mache ihm einige Vorschläge. Diesen Vorschlage hat er abgelehnt – ich weiß gar nicht warum:
Wolfgang wollte es wissen: Der Datenexport aus Access liefert an einer Stelle Zahlen und keine Texte, wie sie in der Access-Tabelle zu sehen sind:
Die Ursache ist schnell gefunden: beim „Typ“ wurde kein Text verwendet, sondern ein Nachschlageassistent, der auf eine andere Tabelle verweist. Verknüpft werden nur Zahlen. Das heißt: angezeigt werden die Text der zweiten Tabelle, verwendet werden die IDs. Und diese werden nach Excel exportiert:
Doof. Wenn man in einem Diagramm einen Datenpunkt formatiert, das heißt im Aufgabenbereich Markierung / Markierungsoptionen öffnet, anschließend auf ein anderes Element des Diagramms klickt und dann wieder auf einen weiteren Datenpunkt, um diesen ebenfalls zu formatieren, muss man jedes Mal den Dialog erneut öffnen. Nervig!
PowerPoint-Schulung. Wir üben Diagramme. Eine Teilnehmerin fragt mich, wo denn das grüne Plussymbol sei, mit dem man weitere Elemente einfügen kann, beispielsweise Gitternetzlinien:
Ich schaue mit die Oberfläche an, schließe den Aufgabenbereich „formatieren“ – und schon erscheint das grüne „+“, das sich dahinter versteckt hat:
Ich probiere ein wenig – es wäre auch sichtbar geworden, wenn man den Zoom der Folie verkleinert:
Ich erstelle ein Exceltabellenblatt, bei dem der Anwender zwischen zwei Texten wechseln kann. Je nach Text wird eine andere Liste für die Datenüberprüfung verwendet. Da die Liste dynamisch ist und aus einem anderen System kommt, muss ich ein paar Zeilen VBA-Code verwenden:
If Target.Value = „Für Standorte“ Or Target.Value = „Für Gebäude“ Then […]
Nach einer Weile meldet sich der Anwender und sagt, dass er auf diesem Tabellenblatt eine Fehlermeldung erhält. Ich schaue nach:
Das Gemeine: Der Anwender hat einen Doppelklick auf eine verbundene Zelle ausgeführt. Dadurch greift das Target-Objekt nicht – es nicht nun nicht mehr EINE Zelle, die einen Inhalt hat, sondern ein Zellbereich. Ich erhalte einen Fehler!
Also noch schnell eine Zeile Code außenrum – in der ersten Spalte wurde nichts verbunden. If Target.Column = 1 Then Und schon klappt es!
Erstaunt: Heute in der PowerPoint-Schulung zeige ich wie man Diagramm erstellt. Eine Teilnehmerin erkundigt sich nach Wasserfall-Diagrammen. Ich zeige es ihr und bin verblüfft, wie die Daten interpretiert werden:
Die gleichen Zahl in Excel eingetragen – Wasserfalldiagramm:
Ich habe meine Verwunderung darüber ausgedrückt, dass PowerQuery (ein Werkzeug, das ich wirklich schätze und das sehr stark und mächtig ist), nicht druckbare Zeichen nicht darstellt. Das rief Kritik auf den Plan. Von vorne. Gegeben sei eine Tabelle, die von einem anderen System geliefert wurde, in denen nicht druckbare Zeichen vorhanden sind:
Die Funktionen CODE und ZEICHEN, TEIL und WECHSELN helfen in Excel beim Säubern, beziehungsweise beim Trennen der Daten.
Ziehe ich die Daten nun nach Power Query, so mein Erstaunen, werden diese Zeichen dort nicht angezeigt. Auch der Assistent „Spalten teilen“ biete keine Option für „nicht druckbare Zeichen“. Beim Zurückspielen nach Excel sind diese Zeichen wieder vorhanden (sie wurden ja nie gelöscht):
Als ich etwas leichtfertig und zugegebenermaßen nicht ganz korrekt, gepostet habe, dass PQ das nicht kann, rief ich Kritik auf den Plan:
„Hallo René, ich hoffe es geht Dir gut. Ich weiß zwar nicht genau, was Du mit nichtdruckbaren Zeichen im Detail in Excel machst, aber ich bin mir ziemlich sicher, dass das – entgegen Deiner Bemerkung – auch mit Power Query geht“
„Das ruft den Experten auf den Plan, wenn ich behaupte, dass das nicht mit PQ geht … Hallo Lars, es gibt Systeme, die liefern in Excel oder Textdateien nicht-druckbare Zeichen (die dort – in anderen Systemen – als Trennzeichen definiert sind) Mit ist aufgefallen, dass PQ diese nicht anzeigt – aber – wenn ich die transformierte Datei wieder zurückspiele – diese Zeichen wieder drin sind. schau mal; probier mal – korrigiere mich – lasse ich gerne!“
„Was Power Query nicht alles kann:
Als Hintergrund: Wenn Du die Daten in Power Query lädst, dann sind die nicht druckbaren Sonderzeichen zwar nicht (ohne weitere Arbeit) sichtbar, aber sie sind vorhanden und man kann sich „um sie kümmern“ Ich denke, dass ich dazu mal einen Blogbeitrag schreiben werde. Danke für die Datei und diese Herausforderung“
#“Changed Type“ =
Table.TransformColumnTypes(Source,{{„Name“, type text}}),
#“Name getrennt“ = Table.AddColumn(#“Changed Type“,
„Name getrennt“, each
Text.Replace([Name],Character.FromNumber(7),“|“))
in
#“Name getrennt“
Ich hätte es schön gefunden, wenn das mächtige Power Query in seinem Assistenten „Spalte teilen“ eine Option dafür gehabt hätte …“
„Hi Rene,
okay, aber in Excel benutzt Du dafür doch auch Formeln, wieso ist das für PQ dann nicht erlaubt? Die Engine hat die Fähigkeiten, aber das Dev Team hat über die GUI eben noch keinen Befehl bereitgestellt.
Aus Deinem Post hatte ich verstanden, dass es gar nicht geht, nicht, dass es nicht über die GUI geht. Das finde ich nicht besonders schlimm.“
„Okay, Lars, du hast gewonnen. Ich habe den Satz korrigiert: „Übrigens: bedauerlicherweise kann man dies nicht mit Power Query mit den „Hausmitteln“ trennen – man benötigt hier einige Zeilen M.“ Ich war verblüfft, dass die nicht druckbaren Zeichen nicht angezeigt werden, aber (und das ist eigentlich auch vernünftig) nicht gelöscht werden. Ich hätte mir in dem (sehr viel mächtigeren Assistenten als in Excel) „Spalten teilen“ eine Option gewünscht, wo man Character.FromNumber() (oder ähnliches) eintragen kann. Tja. Liebe Grüße Rene“
„Meine Funktion tut genau das… Ich habe sie recht schnell entworfen, daher muss der ReplacerText auch als Unicode-Zeichen (also als Nummer) eingegeben werden, anstatt als Text… könnte man alles noch verbessern, aber sie tut bisher, was sie soll…
(TextMitNonPrintables as text, optional ReplacerText as number) as text =>
früher konnet man in Excel individuelle Makro-Buttons malen. Jetzt habe ich dazu nichts mehr gefunden. Gibt es noch eine ähnliche Funktion?
Ein schönes Wochenende wünscht Dir Traudl
####
Hallo Traudl, Die Antwort: geht nicht (mehr). Man könnte ein Bild in die XML-Datei des Dokuments einfügen und mit einem Verweis sich dieses anzeigen lassen. Ist etwas mühsam.
Ich verwende immer eines der vorgegeben Bilder. Nicht dolle, aber … okay …
Ich weiß – früher konnten Firmen „einen roten Drucker“, „einen blauen Drucker“, „einen gelben Drucker“ … da haben wir die Symbole eingefärbt – Pixel für Pixel.
Und schon wieder eine merkwürdige Darstellung bei verschachtelten Excelfunktionen im Funktionsassistenten. Merkwürdig … aber ich glaube, dass ich nicht Excel, sondern dem Beamer, der Grafikkarte, der Auflösung, … die Schuld geben muss …
Kann es sein, dass in dem Excel-Dialog „Inhalte auswählen“, den man über Start / Bearbeiten / Suchen und Auswählen erreicht, die beiden Optionen „Konstanten“ und „Formeln“ vertauscht sind?
Hübsch. Schreibt man zwei Texte in zwei nebeneinanderliegende Zellen, formatiert die linke Zelle linksbündig und mit Einzug und die rechte Zelle zentriert, so liegen die Textinhalte übereinander. Ein Bug oder ein Feature?
Und schon wieder hat man mich gezwungen libreOffice Calc zu unterrichten. Sehr ärgerlich finde ich dort, dass viele Dialoge erweiterte Optionen haben, beispielsweise der Dialog Suchen/Ersetzen:
Klappt man ihn auf stehen weitere Optionen zur Verfügung. Dort kann etwas eintragen:
Das Ärgerliche ist nun Folgendes: schließt man die Dialog und ruft ihn erneut auf, so ist er wieder zugeklappt. Allerdings: die Einstellungen, die in den „weiteren Optionen“ vorgenommen wurden, stehen immer noch drin und sind aber auf den ersten Blick nicht sichtbar. Ärgerlich und verwirrend! Ebenso beim Standardfilter:
Und bei den Pivottabellen/Datenpilot:
Immerhin: die Stadt München steigt nun wieder auf Microsoft Office um: Nachdem die gesamte Stadtverwaltung mit openSource ausgestattet wurde: Millionen an Kosten für neue Hardware, Anpassung, Programmierung, … wurde dann festgestellt, dass der Austausch mit der übrigen Welt nicht so gut funktioniert. Ja, dass es für bestimmte Anwendungen (beispielsweise CAD-Programme) keine openSource auf Linux gibt. In dem Jahr, in dem Microsoft den Firmensitz von Unterschleißheim nach München verlegte, beschloss die Stadt München zurück zu Microsoft zu kehren. Ab November 2019 sollen die ersten Referate migriert werden – bis nächstes Jahr soll Microsoft als Standard wiederhergestellt werden – sehr rasch (überstürzt?) – schließlich sind nächstes Jahr Kommunalwahlen. Und nun werde ich gefragt, ob ich Umsteigertrainings für Word, Excel und PowerPoint durchführen kann und möchte. Wir sind gespannt.
Man hat mich wieder gezwungen libreOffice Calc zu unterrichten. Je häufiger ich es unterrichte, desto mehr liebe ich Microsoft Excel. Beispiel:
Ich erkläre den Funktionsassistenten. Ich wundere mich, dass dort die Tastenkombination [Umschalt] + [Strg] + [↑] nicht funktioniert. In der Tabelle erlaubt diese Tastenkombination größere Bereiche zu markieren.
Es gehen weitere Tasten leider auch nicht: [Umschalt] + [F4] um von einem relativen Bezug zu einem absoluten umzuschalten. Oder folgendes Ärgernis: Klickt man auf eine Zelle, muss man den Cursor danach explizit hinter die Markierung setzen, sonst wird sie bei dem nächsten Zeichen (beispielsweise „>“) überschrieben:
Eine amüsante Anmerkung: Gestern schrieb eine Teilnehmer*in in die Beurteilung: »Das Thema ist für einen Unterrichtstag sehr komplex, man sollte gut ausgeschlafen sein.«
Man hat mich wieder gezwungen libreOffice Calc zu unterrichten. Das Teilchen nervt noch mehr als Excel. Wenn man dort einen Fehler bei der WENN-Funktion macht, schiebt Calc das Zahlenformat Wahrheitswert unter die Zellen und zeigt statt der Zahl 15 den Wert WAHR an. Sehr verwirrend!
Excelschulung. Wir üben die Datenüberprüfung (Gültigkeit).
Eine Teilnehmerin fragt, warum sie keine Datenüberprüfung einschalten darf:
Des Rätsels Lösung: sie hat nicht nur die (intelligente/formatierte) Tabelle markiert und Bereich außerhalb der Tabelle – sie hat auch die Ergebniszeile der Tabelle eingeschaltet. DORT kann man keine Datenüberprüfung einschalten:
Erstellt man eine Pivottabelle kann man ein (Säulen-)Diagramm darauf aufsetzen. Man kann negative Werte in einer anderen Farbe darstellen, indem man die Option „invertieren, falls negativ“ im Aufgabenbereich „Datenpunkt formatieren“ einschaltet.
Dumm ist nur, dass nach dem Speichern, Schließen und Öffnen die Farbe auf Weiß zurückgesetzt wird:
Danke an einen Leser des Blogs für diesen wertvollen Hinweis.
Auch mit Heike Hofert (http://www.der-lerncoach.de/) konnten wir für unsere Exceltage 2019 eine erfahrene und freundliche Referentin gewinnen. Sie referierte über dynamische Diagramme und „intelligente“ (formatierte, dynamische, Layout-)Tabellen, die sie scherzhaft „Tabellchen“ nannte.
Microsoft beschriftet in der deutschen Version die Register der Tabellenblätter mit Tabelle1, Tabelle2, Tabelle3, die Layouttabellen ebenso mit Tabelle1, Tabelle2, Tabelle3, … – nicht sehr intelligent!
Daumen hoch für Johannes Curio (http://curio-consulting.de/), der auch als Referent bei unseren Exceltagen zur Verfügung stand. Er hielt informative, amüsante und spannende Referate über Pivot, Power Query und PowerBI.
Spannend fand ich seine Bemerkung, dass man in PowerQuery niemals den Automatismus „Changed Type“ verwenden sollte. In vielen Fällen wird der Datentyp nicht richtig erkannt, so seine Bemerkung.
Dies demonstrierte er anhand eines CSV-Imports am Beispiel einer Datumsspalte. Seine Empfehlung: diesen Schritt löschen und selbst das Datenformat definieren:
Rückblick Exceltage 2019. Mit Imke Feldmann konnten wir eine hervorragende PowerBI-Programmiererin und -kennerin finden. Warum erscheint sie nicht bei der Suche nach PowerBi-Fragen? Ihr Blog https://www.thebiccountant.com/ ist auf Englisch und deshalb wird sie Deutschland nur schwer gefunden. Dennoch: Kenner der Szene kennen und schätzen sie sehr. Ich habe sie das erste Mal live erlebt und war begeistert von ihrer lebendigen und witzigen Art, aber auch von ihrem profunden Sachwissen und ihrer Kompetenz, Probleme mit Daten zu lösen.
Amüsiert habe ich mich über ihr Erstaunen, dass links neben den PowerQuery-Befehlen Zeilennummern (besser: Befehlsnummern) stehen.
Man kann diese Befehle im Erweiterten Editor ein- und ausschalten: In den Anzeigeoptionen gibt es die Einstellung „Zeilennummern anzeigen“.
Exceltage 2019 in München. Letztes Wochenende. Auch Martin Weiß (https://www.tabellenexperte.de/) war dabei – als Referent hat er drei Referate über seine Spezial- und Lieblingsthemen: Pivottabellen, bedingte Formatierung und Kalender/Datumsfunktionen gehalten. Sie wurden mit Begeisterung besucht.
Interessant und verblüffend fand ich seine Bemerkung zum Unterschied zwischen SUMME([@Länge]) und SUMME([Länge]) in intelligenten Tabellen:
Für unsere Exceltage 2019, die letztes Wochenende in München stattfanden, konnten wir den hervorragenden PowerBI-Kenner und -Spezialisten Hans-Peter Pfister (https://www.powerbi-pro.com/) gewinnen. Er hat tolle Vorträge über CALCULATE in DAX und über M gehalten. Und – zusammen mit Imke Feldmann – ein Dashboard mit der Gruppe entwickelt. Danke!
Amüsiert habe ich mich, als er darauf hinwies, dass in PowerBI im Beziehungsfenster „Viele zu 1“ und „1 zu Viele“ beide mit „*:1“ beschriftet sind – wahrscheinlich ein Kopierfehler, den bislang noch niemand bemerkt hat …
Mit Lorenz Hölscher (http://www.software-dozent.de/) haben wir für unsere Exceltage (www.munich-office-group.de) 2019 einen hervorragenden Dozenten gefunden. Er hat über Themen wie sichere Datenqualität und Dateneingabe, Verbesserungen im VBA-Code referiert. Und er stellte die neuen Array-Funktionen vor, die in Excel nun Einzug gefunden haben.
Auch er kann sich manchmal freche Bemerkungen nicht verkneifen, wenn er fragt, warum in Excel die Funktion TEXT in VBA Format genannt wurde – warum HEUTE() in Access Datum() heißt … Und er machte Witze über Praktikanten, die so etwas implementiert haben – solche Witze machen seine Vorträge nicht nur lehrreich, sondern auch amüsant.
Gestern Excelschulung. In der Kaffeepause sah mich eine Teilnehmerin der letzten Schulung: „Ach, wie gut, dass ich dich sehe – du kannst mir sicherlich helfen! Ich habe eine Exceldatei mit einem Kästchen, das ich nicht löschen kann.“ Bevor ich ihr eine mögliche Antwort geben konnte, schleppte sie mich an ihren Rechner und zeigte mir das Kästchen:
Ein Textfeld! Das war eine leichte Übung: Registerkarte „Entwicklertools“ einschalten, „Entwurfsmodus“ aktivieren, Textfeld markieren und löschen:
ups: Ich habe eine Datei geöffnet, die ich nicht mehr schließen konnte. Ich musste Excel über den Task-Manager beenden:
Sie können Microsoft Excel nicht schließen, weil ein Dialogfeld geöffnet ist. Klicken Sie auf „OK“, wechseln Sie zu Microsoft Excel und schließen Sie das Dialogfeld.
Die Frage ist interessant: Aus einer Geburtstagsliste sollen all diejenigen angezeigt werden, die in dieser (laufenden Kalender-)Woche Geburtstag haben. Eine kleine Fingerübung, oder:
Zuerst wird das Geburtsdatum in ein Datum des aktuellen Jahres „transformiert“. Dann wird von diesem Datum und vom aktuellen Tag die ISOKALENDERWOCHE berechnet. Und schließlich beides miteinander verglichen:
Schau dir mal die Schritt in
der angefügten Tabelle an
Viel Spaß mit KW und
Geburtstag
Rene
Lieber René,
vielen Dank. Ich hatte es gleich gestern Abend noch nachgetüfftelt und bin zum Ergebnis gekommen, allerdings hatte ich das Datum anders umgewandelt.
Da sah dann so aus: =WENN(ISOKALENDERWOCHE(TAG(A1)&“.“&MONAT(A1)&“.“&JAHR(HEUTE()))=ISOKALENDERWOCHE(HEUTE());“Happy Birthday“;““) Viele Grüße Wolfgang
Ist auch richtig, Wolfgang –
meine Lösung ist natürlich besser *lach*
Im Ernst: ich mag es nicht,
wenn du ein Datum (intern eine Zahl) in einen Text umwandelst und diese
implizit wieder in ein Datum konvertieren lässt. Bei sehr vielen Datensätzen
dauert es länger als meine Lösung, die ein Datum als Datum lässt.
Auch ich, René Martin, einer der beiden Veranstalter, werde auf unseren Exceltagen 2019, die am 18. und 19. Oktober in München stattfinden werden, zwei Referate halten: eines über die Funktionen der Kategorie „Nachschlagen und Verweisen“, ein zweites über Tipps und Tricks in Excel. Dort werde ich zeigen, was man mit nichtdruckbaren Zeichen in Texten machen kann – wie man sie entfernen oder durch andere Zeichen ersetzen kann:
Die Funktionen CODE und ZEICHEN, TEIL und WECHSELN helfen dabei.
Stefan Lau und ich sind die Veranstalter der Exceltage 2019. Stefan wird am 19. Oktober in seinen Vortrag zeigen, wie man mit Excel einen Fragebogen erstellen und auswerten kann. Dabei weist er auf Probleme hin, die ActiveX-Steuerelemente erzeugen können:
Auch Johannes Curio (curio-consulting.de/) wird auf unseren Exceltagen 2019 referieren. Eines seiner Themen in seinem Vortrag „Revisionssicherheit“ wird die Rechenungenauigkeit von Excel sein. Er wird Lösungen aus dem Dilemma vorstellen. Mit Johannes Curio konnten wir einen Experten, Trainer und Fachbuchautor für Excel, PowerPivot und Power BI gewinnen.
Auch mit Imke Feldmann (The BICCOUNTANT) haben wir eine hervorragende Kennerin von PowerBI, PowerPivot, DAX und Power Query für unsere Exceltage 2019, die am 18. und 19. Oktober in München stattfinden werden, gewonnen.
Sie zeigt dort beispielsweise, dass man Listen in Power Query nicht mit einer Überschrift versehen kann – man muss sie in Tabellen umwandeln. Guter Tipp!
Übrigens: es sind noch einige Plätze auf unseren Exceltagen frei.
Verwende ich für Vlookup die Schreibweise Application.WorksheetFunction.VLookup,
dann bleibt die Schleife beim ersten Wert hängen, den er nicht findet und gibt
den Laufzeitfehler 1004 aus (Die Vlookup-Eigenschaft des
WorksheetFunction-Objektes kann nicht zugeordnet werden). Der Versuch, mit „If
not isError“ den Fehler abzufangen, schlägt fehl.
Verwende ich jedoch die Schreibweise Application.VLookup,
dann funktioniert alles perfekt und in „Sheets(„Tabelle1“).Cells(i,
2).Value“ wird „Fehler“ hineingeschrieben.
Ein identisches Verhalten zeigen auch andere Funktionen, wie
Application.WorksheetFunction.Match.
Verstehen Sie das?
Danke Ihnen und viele Grüße,
Hallo Herr D.
Der Code sieht korrekt aus. Ich kann dazu nur Folgendes
sagen:
Letzte Woche habe ich ein VBA-Add-In für einen Kunden
erweitert – ich wollte Daten per Formeln aufbereiten, um darauf ein Diagramm
aufzusetzen.
Für unsere Exceltage 2019, die in München am 18. und 19. Oktober stattfinden, konnten wir auch den hervorvorragenden „Power“-Spezialisten Hans-Peter Pfister gewinnen. Er wird über PowerQuery, Power Pivot, Power BI und M sprechen.
In seinem Skript über die Abfragesprache M finde ich folgenden wichtigen Satz:
Mit Eingabe des Kommas wird die Variablendefinition abgeschlossen.
Einzige Ausnahme ist die letzte Variablendefinition vor in – hier
darf nie ein Komma stehen.
Wie oft bin ich schon darüber gestolpert, dass ich – Macht der Gewohnheit – hier ein Komma eingetragen habe.
Ein Kunde möchte ein Add-In für Word erstellt haben. Mit einigen Symbolen. Nach einigem Suchen finde ich den ToggleButton für die Änderungsnachverfolgung:<toggleButton idMso=“ReviewTrackChanges“ imageMso=“ReviewTrackChanges“ /> Es klappt gut:
Der Kunde beschwert sich:
Ich erkenne nur nicht den Unterschied. Wir konnten vorher doch auch zwischen Änderungsverfolgung „ein“ und „aus“ wechseln. Ging es uns nicht darum, den aktuellen Status am Knopf zu
erkennen?
Oder hatte ich das falsch in Erinnerung?
Und schickt mir einen Screenshot:
Meine Antwort: Ohh, das sind die hübschen kleinen Unterschiede zwischen Office 365 und Office 2016. Wenn Sie genau hinschauen: das Symbol ist bei Ihnen grau unterlegt – kaum sichtbar …
PS: Ich bin schon recht genervt von Office 365. Und nicht nur ich …
Zu unseren Exceltagen 2019, die am 18. und 19. Oktober in München stattfinden werden, konnten wir auch Martin Weiß gewinnen – den Tabellenexperten. Spezialist für Datumsberechnungen, PivotTabellen und Bedingte Formatierungen – darüber wird er referieren. Er wird – so habe ich in seinem Skript gelesen – darauf hinweisen, dass es für das Löschen der Bedingten Formatierungen kein Rückgängig gibt! Nur: Alles abbrechen – und von vorne löschen …
Auf unseren Exceltagen 2019, die am 18. und 19. Oktober in München stattfinden werden, wird Heike Hofert (Der-Lerncoach.de) einige spannende Tricks rund um Diagramme präsentieren. Beispielsweise, wie man mit Hilfe eines Pfeils ins Spiel, der eigentlich gar kein Pfeil ist, sondern eine Linie, die im Diagramm einen Anfangs- und einen Endpunkt besitzt, ein Diagramm besser visualisieren kann.
Übrigens: es sind noch Plätze auf unseren Exceltagen frei.
Ich bereite unsere Exceltage 2019 vor. Die Skripte zu den Vorträgen trudeln ein; ich lese sie Korrektur. Mit Lorenz Hölscher (http://www.software-dozent.de/) konnten wir einen hervorragenden Dozenten gewinnen, der vier Referate hält. In einem davon macht er einen Vorschlag einer Eingabemaske. Der Grund:
die „alte“ Datenmaske, die man immer noch über [ALT] / [N] / [M] aufrufen kann, ist „unzulänglich“. Seine Kritik fasst er in einem Bild zusammen:
Warum beginnt Excel mit der Nummer 3 und hängt die Nummern 1 und 2 hinten an???
Über jeden Hinweis wäre ich dankbar.
Mit freundlichen Grüßen
Hallo Herr K.,
und des Rätsels Lösung finden Sie nicht? Nun – dann will ich
es Ihnen „verraten“:
Ein Blick auf Ihre Liste „Rohdaten“ liefert die Antwort:
Dort befindet sich neben den Zellen mit einer „1“ und einer „2“ ein Smarttag
mit dem Hinweis, dass die Zelle als Text formatiert ist oder ein Apostroph
vorangestellt wurde. Da beides nicht der Fall ist liegt die Vermutung nahe,
dass Sie diese Daten aus einem System erhalten haben, das diesen Text
„darunter“ geschoben hat:
Da es sich um zehn Zahlen handelt, habe ich sie noch einmal
eingetragen.
Achtung: Aktualisieren der Pivottabelle auf dem Blatt
„Nutzung“ genügt nicht; ich habe die Daten über Entwurf / Berichtslayout „im
Tabellenformat anzeigen“ lassen und dann sortiert:
Zur Info: Excel sortiert: 7 < 14 < 104 <
hundertvier < sieben < vierzehn. Zuerst Zahl, dann Text
Excelschulung. Ich zeige (intelligente/dynamische/formatierte) Tabellen und zeige, dass die Überschriftszeile der Tabelle beim Herunterscrollen zur Spaltenbeschriftung in Excel wird:
Ein Teilnehmer meldet sich und sagt, dass es bei ihm nicht funktioniere:
Heute zweiter Schulungstag libreOffice Calc. Boah, eh, das nervt, ja noch mehr als Excel. Ein paar Auszüge des Nervens:
Klickt man im Funktionsassistenten auf eine Zelle, ist diese markiert. Man muss die Markierung auflösen (hinter den Zellnamen klicken), um weiter schreiben zu können, beispielsweise, um einen Vergleichsoperator einzufügen. Wenn nicht wird die Markierung überschrieben.
Die Tastenkombination, mit der ein relativer Bezug in einen absoluten verwandelt wird, ist in Calc [Umschalt] + [F4]. Schade nur, dass diese Tastenkombination nicht im Funktionsassistenten funktioniert – dort muss man mühsam das $-Zeichen tippen. Sehr mühsam bei SVERWEIS: =SVERWEIS(B2;$G$1:$H$99;2;1)
Calc kennt zwei verschiedene Mauszeiger für die Zellen: auf dem Kästchen das Kreuz zum Herunterziehen einer Reihe:
Der weiße Mauszeiger zum Markieren:
Verschieben kann man einen markierten Zellbereich, indem man den Mauszeiger auf den markierten Bereich setzt und diesen per Drag & Drop verschiebt:
Und eine Zelle? Wie verschiebt man eine Zelle? Mann muss ausgehend von der zu verschiebenden Zelle mehrere Zellen markieren
wieder die Markierung zurückziehen, so dass nur eine Zelle ausgewählt ist
und nun kann man diese Zelle verschieben:
Ich empfehle Ausschneiden und Einfügen.
Wird bei der „Gültigkeit“ (Datenüberprüfung) die Option „Bei Eingabe ungültiger Werte Fehlermeldung anzeigen“ ausgeschaltet, greift die Gültigkeit nicht mehr!?!
Schaltet man einen Druckbereich ein und wählt anschließend über Format / Druckbereiche / Bearbeiten / Druckbereich: „keine“, so wird nicht der Druckbereich ausgeschaltet, sondern es wird nichts mehr gedruckt!?! Mann schaltet sie mit der Option „ganze Tabelle“ aus.
Erstellt man eine Pivottabelle (Datenpilot), wird sie automatisch auf einem neuen Tabellenblatt eingefügt:
Sehr versteckt findet man die Option „Quelle und Zielbereich“: Dort kann man die Pivottabelle auch auf dem gleichen Tabellenblatt einfügen:
An vielen Stellen sind die „weiteren Optionen“ automatisch ausgeschaltet und müssen bei jedem Aufruf des Dialogs wieder geöffnet werden. So übersieht man leicht vorher eingestellte Optionen:
Soll ich weitermachen? Ich bin froh, dass ich morgen wieder mit Excel arbeiten darf …
Heute hat man mich wieder gezwungen libreOffice Calc zu unterrichten. Ich bin dabei über die Eingabe von Datumsangaben gestolpert: Während man in Excel bequem (auf dem rechten Zahlenblock) T-M-JJ eingeben kann, was dann umgewandelt wird – beispielsweise in 23.09.2019 – verhält sich Calc sehr merkwürdig. Links die eingegebenen Werte – rechts die interpretierten. Links = Text heißt natürlich: „nicht als Datum erkannt“!?!
Heute fragte mich eine Teilnehmerin in der Excelschulung, warum einige Markierungen dunkler sind als andere. Verwundert habe ich mir ihre Datei angeschaut: klar: wenn man mehrmals markiert, verdunkelt sich das Grau:
Nun möchte ich noch die Zeichnungsfläche verschieben, damit man die Beschriftung der Y-Achse besser sehen kann. Obwohl sie einen Abstand von Links = 7 hat, darf ich diesen Wert nicht auf 100 setzen?!?
Schade! Wenn man mit Power Query auf eine Liste zugreift und diese in Excel als Tabelle einfügt, kann man sie aus dem Aufgabenbereich „Abfragen und Verbindungen“ in einer „anderen Form“ laden – der Dialog „Daten importieren“ wird geöffnet.
Dieser Dialog kann auch über das Symbol „Laden in“ aus der Registerkarte „Abfrage“ der „Abfragetools“ geöffnet werden:
Jedoch leider nicht aus dem Power Query-Editor, wenn er einmal geschlossen wurde und dann wieder geöffnet wurde:
Schade. Ich liebe Power Query! Gut, durchdacht, clever, scheinbar fehlerfrei. Jedoch: eine Sache habe ich gefunden, die mich sehr irritiert.
Importiert man eine XML-Datei, in der sich Umlaute befinden, werden diese nicht korrekt angezeigt und lassen sich auch noch transformieren. Ich habe weder einen Schalter (Gebietsschema) noch einen anderen, cleveren Ersetzen-Befehl gefunden. Schade!
Die Aktion kann nicht abgeschlossen werden, da die Datei in Microsoft Mashup Evaluation Container geöffnet ist.
Diese lustige Meldung habe ich erhalten, als ich versucht habe eine Datei umzubenennen. Was habe ich gemacht? Ich habe mit Power Query in Excel auf die Datei zugegriffen und dann den Power Query Editor verlassen und die Änderungen nicht beibehalten. Im Fenster „Abfragen und Verbindungen“ wird keine Verbindung angezeigt, dennoch hält das “ Microsoft Mashup Evaluation Container“ diese Datei.
Word-Schulung. Wir erstellen einen Serienbrief. Ich beginne mit einer einfachen Liste – Punkte für das Zertifikat, das die Azubis erreicht haben. Ich frage sie nach ihrer Punktzahl, sie witzeln; einer sagt: „0,1“. Ich trage es in Excel ein und speichere die Datei.
Ich erstelle einen Serienbrief und verwende diese Liste:
Die Vorschau offenbar Erstaunliches:
Auch hier ein Rundungsfehler! Natürlich kann man ihn in Word mit den entsprechenden Schaltern wegformatieren ( \# „0,00“) oder in Excel in einen Text umwandeln =WENN(B2<1;TEXT(B2;“0,00″);TEXT(B2;“0″))
Word-Schulung. Wir üben Formulare. Fügen Steuerelemente ein und schützen das Dokument. Eine Teilnehmerin meldet sich und sagt, dass sie das Dokument nicht schützen kann:
Die Lösung ist schnell gefunden: Sie hatte den Entwurfsmodus eingeschaltet. Da es mehrere, unterschiedliche Steuerelemente in Word gibt, die unterschiedlich behandelt werden, wäre der „Entwurfsmodus“ bei den „Formularen aus der Vorversion“ eigentlich obsolet.
Microsoft Excel stellt im Insider-Programm die neue Funktion XVERWEIS vor. Andreas Thehos stellt sie auf seinem Kanal vor. Dumm nur, dass diese Funktion nicht abwärtskompatibel ist; das heißt: wer eine ältere Version von Excel hat, sieht leider nur #NAME!
Heute in der Visio-Schulung fragte ein Teilnehmer, warum Microsoft das nicht einheitlich macht: In Visio muss man auf das Register „Entwurf“ klicken, um die Seite einzurichten:
in Word heißt die Registerkarte „Layout“:
und in Excel wurde sie mit „Seitenlayout“ beschriftet:
Es ist soweit: Seit gestern gibt es jede Woche
ein Rätsel rund um Excel: Aufgaben, die man gut mit Excel lösen kann,
Probleme rund um Excel oder excelspezifische Fragestellungen. Ich
beginne mit einer Knobelaufgabe: einem Schneckenproblem. Eine Aufgabe,
die ich in jeder Excel-Grundschulung stelle.
Es sind noch Plätze frei. Bei unseren Exceltagen, die auch in diesem Jahr wieder im Oktober in München stattfinden werden.
Wir bieten:
♦ Einen schnellen und fundierten Überblick über neue sowie bewährte Tools & Techniken, ♦ Praxisnahe Lösungen, die Sie für Ihre tägliche Arbeit nutzen können – und ♦ Eine fundierte Einführung in „Business Intelligence“ mit den Excel-Power Tools.
Weil jeder Anwender andere Herausforderungen mit Excel hat, bieten
EXCEL-TAGE 2019 das Profiwissen unserer 9 Fachleute in 22 Vorträgen
verteilt auf drei parallele Themenreihen an:
♦ „Excel-Tools und -Techniken“ ♦ „Lösungen mit Microsoft Excel“ ♦ „Power & Co: Business Intelligence mit Excel“
Zum Auftakt der EXCEL-TAGE 2019 erhalten Sie in unserem Impulsvortrag einen Überblick zu den drei Themenreihen und zu den geplanten Referaten.
♦ Sie können aus den einzelnen Tracks Ihren Vortrag wählen ♦ Sie erhalten das Begleitmaterial für alle Kurse ♦ Auch außerhalb der Vorträge stehen Ihnen unsere Experten für ein Gespräch zur Verfügung ♦ Nutzen Sie die Möglichkeit zum Netzwerk in den Pausen und auf der Abendveranstaltung
Wir freuen uns auf Ihr Kommen! Dr. René Martin & Stefan Lau
Und schon wieder bin ich reingefallen. Ich möchte in einem Excel-Formular per VBA eine Datenübrprüfung einfügen. Referenzspalte ist Spalte A. Steht dort kein Wert wird eine Datenüberprüfung generiert:
For j = 11 To ThisWorkbook.Worksheets(i).Range(„A1“).SpecialCells(xlCellTypeLastCell).Row If ThisWorkbook.Worksheets(i).Range(„A“ & j).Value = „“ Then ‚ — Datenüberprüfung End If Next
Und natürlich erhalte ich einen Fehler: G36 ist „leer“ (weil verbunden mit G35), aber in G36 kann man keine Datenüberprüfung einschalten ( weil verbunden mit G35). Die Lösung: RAUS MIT DEN VERBUNDENEN ZELLEN:
Ich möchte gerne per VBA auf einem geschützten Excel-Formular eine Dropdownliste (Datenüberprüfung) ändern. Okay – man hätte die auch per Formeln mit zwei Dropdownlisten erzeugen können – aber mit meiner VBA-Lösung bin ich flexibler.
Der Code lautet:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim intZeilen As Integer
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim intZeilen As Integer
If Target.Value = "Für Standorte" Or Target.Value = "Für Gebäude" Then
ActiveSheet.Unprotect
If Target.Value = "Für Standorte" Then
intZeilen = ThisWorkbook.Worksheets("tbl_Basisdaten").Range("B1").CurrentRegion.Rows.Count
Target.Value = "Für Gebäude"
With Target.Offset(0, 1).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=tbl_Basisdaten!$B$2:$B$" & intZeilen ' -- Spalte B bei "Standorten"
End With
ElseIf Target.Value = "Für Gebäude" Then
intZeilen = ThisWorkbook.Worksheets("tbl_Basisdaten").Range("D1").CurrentRegion.Rows.Count - 1
Target.Value = "Für Standorte"
With Target.Offset(0, 1).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=tbl_Basisdaten!$D$2:$D$" & intZeilen ' -- Spalte D bei "Gebäuden"
End With
End If
With Target.Offset(0, 1).Validation
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Target.Offset(0, 1).Value = ""
ActiveSheet.Protect
End If
End Sub
Ich erhalte einen Fehler:
Klaro – ich schützte das Blatt (ActiveSheet.Protect) und anschließend wirkt der Doppelklick, denn ich verwende ja das Ereignis BeforeDoubleClick. Die Lösung ist einfach: ich setze den Cursor auf eine nicht gesperrte Zelle – dann klappt es:
Target.Offset(0, 1).Activate
Witzigerweise befindet sich DANN der Cursor in keiner Zelle.
In der letzten Excelschulung beschwert sich eine Teilnehmerin, dass sie nicht markieren kann. Es ist nicht möglich, so beschwert sie sich, mehrere Zellen auszuwählen:
Der Fehler war schnell gefunden: der Cursor befand sich noch IN der Zelle und nicht AUF der Zelle. Woran ich das gesehen habe? die beiden Symbole x und √ (Haken) sind in der Bearbeitungszeile sichtbar:
Ich wiederhole, dass man in Excel nach der Eingabe einer Zahl, eines Textes oder einer Formel immer [Enter] drücken muss. Dass Excel unterscheidet zwischen „in der Zelle“ und „auf der Zelle“. Etwa die Hälfte der 12 Teilnehmerinnen und Teilnehmer hört interessiert und sichtlich nicht wissend zu. Ich bin erstaunt: ein Excel-Aufbaukurs …
Ich habe den Fehler nicht einkreisen können. Aber er ist da:
In einem Excelformular werden Daten eingegeben. Dort werden Datenüberprüfungen verwendet, die Daten aus einem anderen Tabellenblatt holen. Die Liste verwendet einen Bezug auf das Blatt =tbl_Basisdaten!…
Ich kopiere über eine Schaltfläche ein Tabellenblatt „Interview BIA“ von einer anderen Datei in die aktuelle Datei.
Dadurch wird der Bezug auf die alte Datei hergestellt =[Alte Datei.xlsm]tbl_Basisdaten!…
Das ist mir leider nicht aufgefallen, weil die Dateien auf meiner Festplatte liegen und es deshalb zu keiner Fehlermeldung kommt.
Das muss raus! Okay – wir ändern das:
Ich generiere die Datenüberprüfungen aufgrund der Basisdaten auf dem Interviewformular. Ich verwende keinen Bezug, schreibe per Programmierung „Auftragsabwicklung;Arbeitsvorbereitung und Einkauf;Produktrealisierung Individual;Produktrealisierung maschinelle Fertigung;Wartung / Instandhaltung;Lager / Logistik;EDV-Systembetreuung:
For i = 2 To intZeilen
strZellinhalt = ThisWorkbook.Worksheets(Blatt).Range(strSpalte & i).Value
strListeDatenüberprüfung = strListeDatenüberprüfung & "," & strZellinhalt
Next
If strListeDatenüberprüfung Like "*,*" Then
strListeDatenüberprüfung = VBA.Mid(strListeDatenüberprüfung, 2)
End If
If strListeDatenüberprüfung <> "" Then
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:=strListeDatenüberprüfung ' -- geändert, weil Interviewblatt nun importiert wird
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End If
Das Ergebnis:
Klappt:
Ich speichere die Datei, schließe sie und öffne sie:
„Wir haben ein Problem bei einigen Inhalten erkannt. Sollen wir so viel wie möglich wiederherstellen? Wenn Sie der Quelle dieser Arbeitsmappe vertrauen, klicken Sie auf ‚Ja‘.“ Die Datei ist kaputt! Ich finde den Fehler nicht!
Excelschulung. Jeder bringt seinen eigenen Laptop mit. Das ist immer recht anstrengend. Eine Teilnehmerin brachte ihren Mac mit – ohne Maus. das Touchpad hatte keine „rechte Maustaste“. Uff – das war mühsam – da ich viele der Excel-für-Mac-Tastenkombinationen nicht im Kopf habe. Es gibt keine Schnellstartsymbole, einige Dinge heißen anders und verstecken sich an anderer Stelle… Nicht einfach. Ich hoffe, sie bringt heute eine Maus mit …
VBA-Schulung. Wir erstellen eine Datei mit mehreren Tabellenblättern:
Wir schreiben ein kleines Makro, das uns bei der Blattsuche hilft:
Option Explicit
Option Compare Text
Sub BlattSuche()
Dim strBlattname As String
Dim i As Integer
strBlattname = InputBox("Bitte geben Sie den gesuchten Blattnamen ein!")
For i = 1 To ActiveWorkbook.Sheets.Count
If ActiveWorkbook.Sheets(i).Name = strBlattname Then
ActiveWorkbook.Sheets(i).Activate
Exit Sub
End If
Next
MsgBox "Das gesuchte Blatt " & strBlattname & " wurde nicht gefunden."
End Sub
Bei einer Teilnehmerin funktioniert das nicht:
Die Activate-Methode des Worksheet-Objektes kann nicht ausgeführt werden.
Ich werde stutzig, als ich das Menüband aufklappe:
Da entdecke ich, dass sie noch beim Schreiben eines Tabellenblattnamens ist:
VBA-in-Excel-Schulung. Am dritten Tag beginne ich mit einer Aufgabe: ein Makro soll alle Tabellenblätter schützen; ein zweites Makro den Schutz aufheben. Die Teilnehmer beginnen die Lösung zu erstellen. Eine mögliche Lösung wäre:
Sub AlleBlaetterSchuetzen()
Dim i As Integer
For i = 1 To ActiveWorkbook.Sheets.Count
ActiveWorkbook.Sheets(i).Protect
Next
End Sub
Sub BlattSchutzAufheben()
Dim i As Integer
For i = 1 To ActiveWorkbook.Sheets.Count
ActiveWorkbook.Sheets(i).Unprotect
Next
End Sub
Ein Teilnehmer erstellt auf dem ersten Tabellenblatt zwei Schaltflächen dafür:
Das Perfide: Wenn die Datei mehr als zwei Tabellenblätter hat, wechselt Excel beim Blattschutzaufheben zu einem anderen Tabellenblatt (dem vorletzten). Ich weiß nicht warum …
„Bitte nicht lachen, find etwas grad gar nicht lustig
In einer Exceltabelle sind die Spalten A bis E ausgeblendet, lassen sich aber nicht wieder einblenden. Der Menüpunkt einblenden ist da (nicht ausgegraut) udn funktioniert überall sonst im Blatt. Es lässt sich aber schier nicht so markieren, dass es die Spalten A bis E wieder einblendet. Das es die noch gibt, weiss ich, da ich mit den Pfeiltasten die nicht sichtbaren Spalten durchklicken kann und dort auch Werte in der Funktionsleiste angezeigt werden. Weiss jemand, wie ich das wieder zurückbekomme? Die Spalten rechts und links der ausgeblendeten Spalten markieren, geht zumindest nach links ja nicht. Sowas hatt ich auch noch nie
####
Danke, hat sich bereits erledigt. Es lag an der Spaltenfixierung, die unglücklich ganz links vorgenommen wurde.“
Mein Kommentar: Böse! Sehr böse! Fixieren UND ausblenden! Geht gar nicht!
Gestern in der Excelschulung amüsierte sich ein Teilnehmer über das Wort „wahrscheinlich“ in der Aussage „Es wird wahrscheinlich eine ganze Zahl oder Dezimalzahl verlangt.“ „Wissen die nicht, was verlangt wird?“, fragte er.
Ich erstelle ein Add-In für einen Kunden. Mit Makros und mit Symbolen im Menüband. Ein Teil des XML-Codes sieht wie folgt aus:
<tab id="tabBCM" label="BCM">
<group id="grpEinstellungen" label="Einstellungen">
<button id="cmdKonfigurationImpact" imageMso="FieldList" label="Konfiguration Impactbewertung" onAction="cmdKonfigurationImpact" size="large" supertip="Öffnet den Dialog zur Konfiguration der Impactbewertung des Kernprozesses" screentip="Dialog: Konfiguration"></button>
<button id="cmdKonfiguration" imageMso="ControlLayoutStacked" label="Konfiguration Betrachtungshorizont" onAction="cmdKonfiguration" size="large" supertip="Öffnet den Dialog zur Konfiguration" screentip="Dialog: Konfiguration"></button>
<button id="cmdBasisdaten" imageMso="ControlLayoutTabular" label="Basisdaten (Interview BIA)" onAction="cmdBasisdaten" size="large" supertip="Öffnet den Dialog zur Eingabe der Basisdaten" screentip="Dialog: Basisdaten"></button>
Das Ergebnis sieht wie folgt aus:
Mit fällt auf, dass auf einem kleinen Bildschirm (beispielsweise Laptop) die Gruppen zusammengepackt werden. Diese Darstellung gefällt mir nicht:
Zum Glück entdecke ich, dass man in die Gruppen auch Bilder (imageMso) einfügen kann. Und nun wird mir der Zweck klar: beim Verkleinern werden diese Symbole angezeigt. Das werde ich nun immer machen:
An der Darstellung des Menübandes hat sich nichts geändert: