Excel (VBA): Formeln aktualisieren nicht

2016-07-08 von Mario

Beim Arbeiten mit MS Excel hat plötzlich die Aktualisierung der Formeln nicht mehr funktioniert. Folgende Schritte haben Abhilfe verschafft:

1. Auf den Reiter “Formeln” klicken.

excel_formel_01

2. Den Eintrag “Berechnungsoptionen” wählen und die Option “Automatisch” setzen.

excel_formel_02

Fertig :)

Kategorie: IT Schlagwörter: , , , , , ,

Excel (VBA): Zeilen automatisch ausblenden

2016-06-06 von Mario

Vor kurzem wurde eine Aufgabe an mich herangetragen. Mit Hilfe von MS Excel soll eine Statusliste gepflegt werden.

ausblenden01

Wenn in der Spalte “Status” der Wert “Erledigt” eingetragen wird,

ausblenden02

soll automatisch die entsprechende Zeile (3) ausgeblendet werden.

ausblenden03

Für die Umsetzung habe ich ein Makro erstellt, welches unter dem Reiter “Entwicklertools – Visual Basic” eingebunden wird.

ausblenden03a

Daraufhin öffnet sich der Visual Basic for Application Editor. Für die Einbindung muss die entsprechende Tabelle gewählt

ausblenden04

und der folgende Quellcode eingefügt werden:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    
    Dim i As Long, l_rowCount As Long
    
    'get last filled cell in column D
    l_rowCount = Cells(Rows.Count, 4).End(xlUp).Row
    
    'loop backwards and hide row
    For i = l_rowCount To 1 Step -1
      If LCase(Cells(i, 4).Text) = "erledigt" Then
        Cells(i, 4).EntireRow.Hidden = True
      End If
    Next i
    
End Sub

 

Bei jeder Aktualisierung/Änderung in der Tabelle 1 wird das Makro automatisch ausgeführt. Wenn in einer Zeile in der Spalte D der Wert “erledigt” eingegeben wird, erfolgt automatisch ein Ausblenden der jeweiligen Zeile.

 

Die Beispieldatei zum Download.

Kategorie: IT Schlagwörter: , , , , ,

Excel (VBA): Summe nur negativer oder positiver Werte

2014-10-06 von Mario

Mit MS Excel ist es mit der Funktion “SUMME” möglich, die Summe einer Liste von Werten oder einem Wertebereich zu ermitteln. In der Zeile 7 befindet sich ein Beispiel für die Anwendung der Funktion mit einem Wertebereich.

Funktion Summe

=SUMME(B1:B6)

Für die Ermittlung der Summe aller negativen oder positiven Werte wird eine andere Funktion benötigt.

Summe_neg_pos

Eine sehr einfache Möglichkeit ist die Verwendung der Funktion “SUMMEWENN”.

Summewenn für negative Werte

=SUMMEWENN(B1:B6;"<0")

Der erste Parameter “B1:B6” legt den Bereich für die Werte, die dem Suchkriterium entsprechen, fest und definiert den Bereich aller Werte, die summiert werden sollen. Der zweite Parameter “<0” bestimmt das Suchkriterium, in diesem Fall, alle Werte kleiner null.

Summewenn für positive Werte

=SUMMEWENN(B1:B6;">0")

Für die Summe aller positiven Werte muss lediglich das Suchkriterium “>0” angepasst werden.

 

Die Beispieldatei zum Download.

Kategorie: IT Schlagwörter: , , , , ,

Excel (VBA): Auswahllisten in Zellen

2014-07-29 von Mario

In MS Excel gibt es die Möglichkeit, Auswahllisten in Zellen darzustellen und somit die Eingabe auf den Inhalt der Liste zu beschränken. An folgendem Beispiel soll die Umsetzung veranschaulicht werden. Auf dem Reiter “Daten” werden die Produkte dargestellt, welche noch einen Status benötigen.

Excel_Daten01

Auf dem zweiten Reiter “Filter”, wird der mögliche Status aufgeführt.

Excel_Daten02

Im nächsten Schritt wird die Zelle C2 auf dem Reiter “Daten” selektiert. Im Hauptmenü von Excel “Daten” muss dann die Schaltfläche “Datenüberprüfung” gewählt.

Excel_Daten03

Danach öffnet sich ein neues Fenster. Hier im Feld “Zulassen” den Wert “Liste” auswählen.

Excel_Daten04

Jetzt den Wert “Quelle” mit dem Bereich aus dem Reiter “Filter” füllen.

=Filter!$A$1:$A$3

Excel_Daten05

Daraufhin mit “Ok” bestätigen und die Auswahlliste mit den gewünschten Werten wird angezeigt.

Excel_Daten06

 

Die Beispieldatei zum Download.

 

Kategorie: IT Schlagwörter: , , , , , , ,

Excel (VBA): Zelleninhalt finden und kopieren

2014-05-15 von Mario

In der Spalte A werden verschiedene Unternehmen aufgeführt. Dabei sind die Rechtsformen in Anführungszeichen dargestellt. Für eine Auswertung wird nur die Rechtsform benötigt.

Zelleninhalt01

Mit der Funktion TEIL wird eine bestimmte Anzahl Zeichen ab einer festgelegten Position zurückgegeben.

=TEIL(Text; Erstes_Zeichen; Anzahl_Zeichen)

Das Wort “Text” muss mit A1 ersetzt werden, “Erstes_Zeichen” mit dem Wert 9 und “Anzahl_Zeichen” mit dem Wert 4.

=TEIL(A1; 9; 4)

Da es in der Liste nicht nur Rechtsformen mit 4 Zeichen gibt, muss die 9 und die 4 durch weitere Formeln ersetzt werden.

Als erstes wird die Position des Anführungszeichens mit der Funktion “Finden” gesucht .

=FINDEN("""";A1)

Das Anführungszeichen wird in der Spalte A1 an 8. Stelle gefunden. Als nächstes wird die gesamte Länge aller Zeichen in der Zelle benötigt.

=LÄNGE(A1)

Für die Zelle A1 erhalten wir den Wert 13. Da die Anführungszeichen nicht relevant sind, wird nur der Text von Position 9 bis 12 benötigt, welcher dem Wert “GmbH” entspricht.

Die 9 kann wie folgt berechnet werden

=FINDEN("""";A1)+1

und das zurückgelieferte Ergebnis beträgt 9, denn 8+1=9. Die 4 kann durch

=LÄNGE(A1)-FINDEN("""";A1)-1

berechnet werden und das zurückgelieferte Ergebnis beträgt 4, denn die Länge 13 – Finden 8 -1 = 4.

Zelleninhalt02

Die vollständige Formel lautet wie folgt:

=TEIL(A1;FINDEN("""";A1)+1;LÄNGE(A1)-FINDEN("""";A1)-1)

 

Hier das Beispiel zum Download.

Kategorie: IT Schlagwörter: , , , , ,

KTurtle – spielend programmieren lernen

2014-05-13 von Mario

KTurtle ist eine Programmierumgebung, die ein spielerischen Einstieg in die Programmierung erlaubt. Mit der Software gilt es, eine kleine Schildkröte zu steuern, welche z.B. Linien zeichnet.

imKreis

In dem Beispiel läuft die Schildkröte von innen nach außen.

reset

canvassize 400, 400
canvascolor 0, 0, 0
pencolor 200, 200, 50 
penwidth 2

$x = 5

go 200,200

repeat 74 {
  forward $x
  turnleft 90
  forward $x
  turnleft 90
  $x = $x + 5
}

Und weil es soviel Spaß macht, ein kleines Video dazu.

 

Handbuch: http://docs.kde.org/development/en/kdeedu/kturtle/

Programm: http://edu.kde.org/kturtle/

Kategorie: IT Schlagwörter: , , , , ,

Excel (VBA): Summewenns mit Datum

2014-03-02 von Mario

Mit der Formel “Summewenn” ist es möglich, Werte in einem Bereich zu addieren, wenn diese den angegebenen Kriterien entsprechen. Folgende Tabelle soll zur Veranschaulichung dienen:

Datenbasis

Interessant wäre jetzt herauszufinden, welcher Betrag je Kategorie angefallen ist.

SummeWenn

Hierfür kann die Formel “Summewenn” verwendet werden.

SUMMEWENN(Bereich; Suchkriterium; Bereich für die Summe)

Das erste Attribut “Bereich” legt fest, wo nach dem “Suchkriterium” gesucht werden soll. Das “Suchkriterium” ist die Einschränkung für die Summenberechnung (Bereich für die Summe). In diesem Beispiel sieht die Formel für die Summe der Beschaffung wie folgt aus:

=SUMMEWENN(A2:A10;E20;C2:C10)

 

Jetzt wäre noch eine Aufschlüsselung je Monat ganz nützlich. Ein weiteres Suchkriterium ist zwar möglich, aber gestaltet sich etwas umständlich. Deshalb gibt es seit MS Office 2007 die Formel “Summewenns“. Hier wurden die Suchkriterien erweitert und es sind mehrere Bedingungen für eine Summenbildung einstellbar.

Als erstes wird eine Hilfsspalte (D) benötigt, in der aus dem Datum der aktuelle Monat dargestellt wird.

Hilfsspalte

Mit der Formel Monat lässt sich das schnell bewerkstelligen.

=MONAT(B2)

Danach kann es dann los gehen.

SummeWenns

Die Reihenfolge der Attribute ist leicht verändert. Das erste Attribut wird für die Summenberechnung benötigt, danach folgt das erste Suchkriterium und der dazugehörige Bereich mit der Option weitere Attribute anzugeben.

SUMMEWENNS(Bereich für die Summe; Suchkriterium 1; Bereich 1, Suchkriterium 2; Bereich 2)

Für die Berechnung der Summe aller Werte der Beschaffung für den Monat Januar ergibt sich folgende Formel:

=SUMMEWENNS(C2:C10;A2:A10;H20;D2:D10;I19)

Zum besseren Nachvollziehen gibt es die Beispieldatei zum Download.

 

Kategorie: IT Schlagwörter: , , , , , , , ,

Excel (VBA): Zellen in Excel runterziehen funktioniert nicht

2014-03-01 von Mario

Heute hatte ich den Fall, dass in MS Excel 2007 das ziehen von Formel und Format übertragen nicht mehr funktioniert hat.

Nach kurzer Recherche war die Lösung gefunden.

  1. Auf die Microsoft Office-Schaltfläche  ZA010077102 Klicken.
  2. Dann auf Excel-Optionen Klicken.
  3. Daraufhin auf Erweitert.
  4. Und zu guter Letzt, im Bereich “Optionen bearbeiten” das Kontrollkästchen “Ausfüllkästchen und Drag-and-Drop von Zellen aktivieren” setzen.

Excel_Optionen

 

Danach funktioniert alles wieder wie gewohnt. Der Unterschied ist auch optisch sichtbar.

 

Deaktiviert Aktiviert
Excel_Optionen1 Excel_Optionen2
Kategorie: IT Schlagwörter: , , , , , ,

Excel (VBA): Wenn Abfrage mit Uhrzeiten

2013-10-28 von Mario

Aus der Reihe kleine MS Excel Aufgaben für zwischendurch. Ich habe eine Spalte (A) mit verschiedenen Uhrzeiten. Ich wollte herausfinden, welche Werte davon kleiner als 07:00 Uhr sind.

 

Excel_Uhrzeit

 

Folgende Formel habe ich erstellt:

=WENN(TEXT(A2;"HH:MM")<TEXT("07:00";"HH:MM"); "Ja"; "Nein")

 

Hier eine Erläuterung der einzelnen Funktionen.

Die Funktion TEXT wandelt einen numerischer Wert in Text um. Dabei wird das Format der Uhrzeit mit HH:MM angegeben.

TEXT(A2;"HH:MM")

Dieser Zwischenschritt ist wichtig, da ein direkter Vergleich über die WENN Funktion zu einem falschen Ergebnis führt. Durch die Anpassung des Formats ist ein Vergleich möglich.

Die Funktion WENN vergleicht zwei Werte und gibt einen definierten Wert zurück.

=WENN(1<2; "Ja"; "Nein")

Wenn eins kleiner zwei, dann wird der Wert “Ja” angezeigt, andernfalls der Wert “Nein”.

 

Kategorie: IT Schlagwörter: , , , , , ,

Linux: Oracle JDK 7 unter Ubuntu installieren

2013-09-18 von Mario

Folgendes PPA (Personal Package Archive) muss hinzugefügt werden.

$ sudo add-apt-repository ppa:webupd8team/java

Danach updaten …

$ sudo apt-get update

und JDK7 installieren.

$ sudo apt-get install oracle-jdk7-installer

Mit diesem Befehl kann die aktuelle installierte Version angezeigt werden.

java -version
Kategorie: IT Schlagwörter: , , , ,

Liste aller USB Geräte anzeigen (unter Linux mit C)

2012-11-13 von Mario

Mit diesem Beispiel können alle angeschlossenen USB-Geräte, unter Linux, ausgelesen werden.

Das Ergebnis sieht wie folgt aus.

Zum Vergleich, die Ausgabe von dem Befehl lsusb.

Damit das Programm auch kompiliert, wird eine Library benötigt.

Installation der USB Library

sudo apt-get install libusb-dev

Compile

gcc find_usb.c -o find_usb.o -lusb

 

Code

#include <stdio.h>
#include <stdlib.h>
#include <usb.h>

int main()
{

    struct usb_bus *bus;
    struct usb_device *dev;

    usb_init();
    usb_find_busses();
    usb_find_devices();

    for (bus = usb_get_busses(); bus; bus = bus->next)
    {

        printf("Bus %s \n", bus->dirname);

        for (dev = bus->devices; dev; dev = dev->next)
        {
            printf("Device %s vid=%04X, pid=%04X\n", dev->filename,    
            dev->descriptor.idVendor, dev->descriptor.idProduct);
        }
    }

    return 0;
}

Viel Spaß damit! :)

Kategorie: IT Schlagwörter: , , , , ,

XAMPP unter Ubuntu installieren

2012-05-18 von Mario

XAMPP steht für X(Linux oder Windows), Apache, MySQL, PHP und Perl. Damit kann sehr bequem eine Umgebung für die Webentwicklung bereitgestellt werden.

 

Schritt 1 

Download der aktuellen Version.

Link: http://www.apachefriends.org/de/xampp-linux.html

 

Schritt 2

Entpacken der Software.

$ sudo tar xvfz xampp-linux-1.7.7.tar.gz -C /opt

 

Schritt 3

Starten des Webservers, MySQL usw.

$ /opt/lamp/lampp start

 

Schritt 4

Absichern des lokalen Installation.

$ /opt/lamp/lampp security

Hier jetzt jeweils die Passwörter setzen.

 

 Schritt 5

Jetzt nur noch den Browser öffnen (http://localhost/) und viel Spaß beim programmieren.

 

 

Kategorie: IT Schlagwörter: , , ,

Javascript: find the id and show in the title of the element

2012-05-13 von Mario

This script shows the ID, if you move your mouse over the item.

 

function findIDandSetToTitle(obj) {

    //loop over all nodes of the obj
    for (i=0; i<obj.childNodes.length; i++) {

        if (obj.childNodes[i].tagName == "INPUT" && 
(obj.childNodes[i].type == "text" || obj.childNodes[i].type == "checkbox" 
|| obj.childNodes[i].type == "radio") ||
            obj.childNodes[i].tagName == "SELECT" ||
            obj.childNodes[i].tagName == "TEXTAREA" ||
            obj.childNodes[i].tagName == "A"
            )
        {
            obj.childNodes[i].title = "ID:" + obj.childNodes[i].id;
        }  

    }
}

 

Live Demo: Click
Download Demo: Example_find_ids.zip

Kategorie: IT Schlagwörter: , , , ,

Excel (VBA): Summe bis aktueller Monat

2012-05-07 von Mario

Vor ein paar Tagen hatte ich eine nette Aufgabe mit MS Excel zu lösen. Folgende Ausgangssituation, ich benötige die Summe der Werte in der Spalte B. Alle Monate die noch nicht begonnen haben, beinhalten einen negativen Wert. Diese möchte ich explizit aus der Summe ausschließen.

Kurz gesagt, ich benötige die Summe der Monate die kleiner gleich dem aktuellem Monat sind.

 

Folgende Formel kam dabei zustande:

=SUMME(B1:INDIREKT(ADRESSE(MONAT(HEUTE());2)))

 

Hier eine Erläuterung der einzelnen Funktionen.

Die Funktion Heute gibt den aktuellen Tag aus.

HEUTE()

Die Funktion Monat gibt den aktuellen Monat aus. Als Übergabeparameter wird ein Zahl (1-12) oder ein Datum benötigt.

MONAT(HEUTE())

Die Funktion Adresse gibt die Adresse der Spalte/Zeile aus.

ADRESSE(MONAT(HEUTE());2))

Die 2 ist die Spalte B.

Es wird der Wert “$B$5”  geliefert.  Eigentlich wären wir hier fertig. Folgende Funktion

Summe(B1; ADRESSE(MONAT(HEUTE());2)))

funktioniert so aber nicht. Die Funktion Summe benötigt immer einen von und bis Wert und versteht den variablen bis Wert nicht.

Mit der Formel Indirekt lässt sich dies umgehen. Hiermit lässt sich der Bezug ändern, ohne die Formel zu ändern.

INDIREKT(ADRESSE(MONAT(HEUTE());2))

Jetzt noch die Summenformel dazu und wir sind fertig. :)

 

Kategorie: IT Schlagwörter: , , , , , ,

jQuery: find parent form and make all textfields inside the form editable

2012-03-03 von Mario

This little jQuery script shows a solution for my next challenge.
It should be found, the parent form when the “bearbeiten” button was pressed.
After that, all the fields inside the form must be editable.

 

Live Demo: Click
Download Demo: Demo_001.zip

$(document).ready(function () {
   $("input:text").attr('disabled', 'disabled');
});

$('input:button[name="bearbeiten"]').click(function() {
   setEditable(this);
});

function setEditable(_this) {

   $(_this).closest("form").find("input:text").each(function(index, elem ) {
      $(elem).removeAttr('disabled');
   });
}

thanks goes to: A.K. ;)

Kategorie: IT Schlagwörter: , , , , , ,