Archive for the ‘Programmierung’ Category.
2012-02-05, 21:06
Den ersten und letzten Tag eines Monats bzw. Quartals kann man recht einfach in Excel bestimmen.
Sei in A1
ein Datum, für das die Werte bestimmt werden sollen.
- Monatserster: =DATUM(JAHR(A1);MONAT(A1);1)
- Monatsletzter: =DATUM(JAHR(A1);MONAT(A1)+1;1)-1
- Quartalserster: =DATUM(JAHR(A1);MONAT(A1)-REST(MONAT(A1)-1;3);1)
- Quartalsletzter: =DATUM(JAHR(A1);MONAT(A1)+REST(3-MONAT(A1);3)+1;)
Hier noch ein paar Datumsformeln:
- Quartal =AUFRUNDEN(MONAT(A1)/3;0)
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website
Schlagwörter:
Excel Category:
MS Office & VBA |
Kommentare deaktiviert für In Excel den Monats- und Quartalsersten/-letzten bestimmen
2012-01-22, 08:40
Die programmatische Erstellung von LaTeX-Code durch ein Framework hat mich schon immer interessiert, über ein stackexchange Posting (http://tex.stackexchange.com/questions/41875/generate-latex-truth-table-with-python-cheetah) wurde jetzt auch mein Interesse an der Erzeugung durch Python geweckt.
Hier ein Beispiel für die Erzeugung von LaTeX durch das Python Cheetah framework:
from Cheetah.Template import Template
definition = """\\documentclass{article}
\\title{$paper.title}
\\author{$author.name}
\\begin{document}
\\maketitle
\\end{document}"""
class author:
"""A simple example author class"""
name = "Uwe Ziegenhagen"
def f(self):
return 'Hello World'
class paper:
"""A simple example paper class"""
title = "My First paper"
def f(self):
return 'hello world'
uwe = author()
mypaper = paper()
print Template(definition, searchList=[{'author' : uwe,'paper' : mypaper}]) |
from Cheetah.Template import Template
definition = """\\documentclass{article}
\\title{$paper.title}
\\author{$author.name}
\\begin{document}
\\maketitle
\\end{document}"""
class author:
"""A simple example author class"""
name = "Uwe Ziegenhagen"
def f(self):
return 'Hello World'
class paper:
"""A simple example paper class"""
title = "My First paper"
def f(self):
return 'hello world'
uwe = author()
mypaper = paper()
print Template(definition, searchList=[{'author' : uwe,'paper' : mypaper}])
Erzeugt wird dadurch folgendes Dokument:
\documentclass{article}
\title{My First paper}
\author{Uwe Ziegenhagen}
\begin{document}
\maketitle
\end{document}
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website
2012-01-20, 23:43
Zu meinen aktuellen Aufgaben gehört es gelegentlich, Aufträge an den IT-Dienstleister in einem bestimmten Format zu verfassen. Nachdem ich einige Male die notwendigen Texte mühevoll zusammenkopiert hatte, kam der Wunsch nach der Automatisierung des ganzen auf. Mit ein wenig VBA Code und Google (http://www.exceltip.com/show_tip/Applications_-_Word,_Outlook_in_VBA/Control_Outlook_from_Excel_using_VBA_in_Microsoft_Excel/464.html) ist es recht einfach, die E-Mails zusammenzubauen.
Hier ein einfaches Beispiel: Aus der jeweils aktiven Zeile sollen E-Mail Adresse, Betreff und Body ausgelesen und in eine E-Mail gesetzt werden, die aktive Zeile ermittele ich dabei über currentrow = ActiveCell.Row
.
Der Code, der unter dem Link verfügbar ist, benötigt eine Referenz zur Microsoft Outlook Object Library, diese lässt sich über Extras => Verweise einfügen. Wenn wir das Beispiel auf unser Szenario anpassen, erhalten wir:
Sub SendAnEmailWithOutlook()
currentrow = ActiveCell.Row
Dim OLF As Outlook.MAPIFolder, olMailItem As Outlook.MailItem
Dim ToContact As Outlook.Recipient
Set OLF = GetObject("", _
"Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
Set olMailItem = OLF.Items.Add ' erstellt neue Mail
With olMailItem
.Subject = Cells(currentrow, 3).Value ' Betreff
Set ToContact = .Recipients.Add(Cells(currentrow, 2).Value) ' Empfänger
.Body = Cells(currentrow, 4).Value ' Body
.Save ' nur Speichern, nicht sofort senden
End With
Set ToContact = Nothing
Set olMailItem = Nothing
Set OLF = Nothing
End Sub
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website
2012-01-11, 22:01
Hier ein kurzer Schnipsel, wie man Zeichen in Dateinamen ersetzen kann. Für die tatsächliche Umbenennung ist das „-whatif“ zu entfernen.
$files = gci -Recurse | ? {$_.PSisContainer -eq $false} | ? {$_.name -match "~"}
foreach ($i in $files){
rni -WhatIf $i.fullname $i.Name.Replace("~","_")
} |
$files = gci -Recurse | ? {$_.PSisContainer -eq $false} | ? {$_.name -match "~"}
foreach ($i in $files){
rni -WhatIf $i.fullname $i.Name.Replace("~","_")
}
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website
2011-12-26, 11:45
Bei der täglichen Arbeit hilft mir die Microsoft Powershell sehr. Hier ein paar Links zu den wichtigsten Büchern & Webseiten:
Bücher
- Schnelleinstieg in die Windows Powershell von Andy Oakley
- Windows PowerShell Crashkurs von Peter Monadjemi
- Windows PowerShell für Administratoren und Power-User von Helma Spona
- Windows PowerShell von Holger Schwichtenberg
Online (Microsoft)
Online
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website
2011-12-25, 21:11
Hier ein kurzes Makro, um den Wert der aktuellen Zelle in der Zeile darunter zu duplizieren.
Sub Makro1()
'
' Makro1 Makro
'
'
ActiveCell.Offset(1, 0).Select
Application.CutCopyMode = False
Selection.EntireRow.Insert
ActiveCell.Offset(-1, 0).Select
Selection.Copy
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveCell.Offset(1, 0).Select
End Sub |
Sub Makro1()
'
' Makro1 Makro
'
'
ActiveCell.Offset(1, 0).Select
Application.CutCopyMode = False
Selection.EntireRow.Insert
ActiveCell.Offset(-1, 0).Select
Selection.Copy
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveCell.Offset(1, 0).Select
End Sub
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website
2011-12-15, 22:10
http://blogs.technet.com/b/gbordier/archive/2009/05/05/powershell-and-writing-files-how-fast-can-you-write-to-a-file.aspx zeigt verschiedene Wege, mittels Powershell Daten in eine Datei zu schreiben, die Unterschiede sind schon recht drastisch zwischen den eingebauten und .Net Befehlen.
Wenn jemand selbst mal die Performance messen möchte: Unter http://poshtips.com/2010/03/30/measuring-elapsed-time-in-powershell/ findet sich ein kurzer .Net Schnipsel, um das StopWatch Objekt aus Powershell heraus anzusprechen. Der StreamWriter braucht auf meinem Laptop ca. 0,54 Sekunden.
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website
Schlagwörter:
Powershell Category:
Powershell |
Kommentare deaktiviert für IO-Performance verschiedener Powershell-Befehle
2011-12-10, 10:18
Externe Tools mögen zwar deutlich performanter sein, manchmal reicht es aber auch, MD5 Prüfsummen in Excel selbst zu bestimmen. Unter http://www.tutorials.de/visual-basic-6-0/275442-md5-per-vba.html findet man entsprechenden VBA Code, der die entsprechende Funktion als Formel bereitstellt. Es empfiehlt sich, den kompletten Thread zu lesen, da in diesem Code noch Referenzen auf eine Progressbar entfernt oder auskommentiert werden müssen.
Informationen zu MD5 selbst finden sich zum Beispiel in der Wikipedia: http://de.wikipedia.org/wiki/Message-Digest_Algorithm_5.
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website
2011-11-27, 17:47
Gelegentlich ist es hilfreich, die Namen aller Arbeitsblätter in einer Excel-Mappe zu kennen. Der folgende VBA Code gibt genau dies aus:
Sub SheetNames()
For i = 1 To Sheets.Count
Cells(i, 1) = Sheets(i).Name
Next i
End Sub
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website
Schlagwörter:
Excel Category:
MS Office & VBA |
Kommentare deaktiviert für Mit VBA die Namen aller Excel Arbeitsblätter ausgeben
2011-11-05, 07:17
Hier ein kurzer Code-Schnipsel, um die Gruppen des aktuellen Users auszugeben:
$groups = [System.Security.Principal.WindowsIdentity]::GetCurrent().Groups
foreach($i in $groups){
$i.Translate([System.Security.Principal.NTAccount]).value
} |
$groups = [System.Security.Principal.WindowsIdentity]::GetCurrent().Groups
foreach($i in $groups){
$i.Translate([System.Security.Principal.NTAccount]).value
}
Um die Gruppen eines beliebigen Users auszulesen muss ein anderer Ansatz gewählt werden: (http://stackoverflow.com/questions/8009593/list-group-memberships-for-ad-users)
Add-Type -AssemblyName System.DirectoryServices.AccountManagement
$username = read-host -prompt "Enter a username"
$ct = [System.DirectoryServices.AccountManagement.ContextType]::Domain
$user = [System.DirectoryServices.AccountManagement.UserPrincipal]::FindByIdentity($ct, $username)
$groups = $user.GetGroups()
foreach($i in $groups){
$i.SamAccountName
} |
Add-Type -AssemblyName System.DirectoryServices.AccountManagement
$username = read-host -prompt "Enter a username"
$ct = [System.DirectoryServices.AccountManagement.ContextType]::Domain
$user = [System.DirectoryServices.AccountManagement.UserPrincipal]::FindByIdentity($ct, $username)
$groups = $user.GetGroups()
foreach($i in $groups){
$i.SamAccountName
}
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website