Z


Problem Makro
Zellen fotografieren und Inhalt einfügen Sub Kamera()
[A1:A9].CopyPicture
[B1].Activate
ActiveSheet.Paste
End Sub
Zellinhalt ohne Formatierung verschieben

Die betreffende Zelle anklicken und das Makro kopiert den Inhalt eins weiter nach recht

von Martin Beck:

Sub  Ohne_Format_Verschieben()
    z = ActiveCell.Row
    s = ActiveCell.Column
    Cells(z, s + 1).Value = Cells(z, s).Value
    Selection.ClearContents
End Sub

Sonderzeichen Siehe Extraseite
Text für Zwischenablage schreiben Sub Zwischenablage()
Dim xtext
Set Testtext = New DataObject
xtext = "Testtext für Zwischenablage"
Testtext.SetText xtext 'kein = verwenden
Testtext.PutInClipboard
End Sub
Zufallspasswort erzeugen Sub ZufallsPW()
Dim Wert1, Wert2, Klein, Groß
Klein = 96 'Zusatz für Schriftzeichen a=97
Groß = 64 'Zusatz für Schriftzeichen A=65
Randomize ' Zufallszahlengenerator initialisieren.
Wert1 = Int((26 * Rnd) + 1) ' Zufallszahlen im Bereich von 1 bis 26
Wert2 = Chr(Wert1 + Klein)
Wert1 = Int((26 * Rnd) + 1)
Wert2 = Wert2 & Chr(Wert1 + Groß)
Wert1 = Int((26 * Rnd) + 1)
Wert2 = Wert2 & Chr(Wert1 + Klein)
Wert1 = Int((26 * Rnd) + 1)
Wert2 = Wert2 & Chr(Wert1 + Groß)
Wert1 = Int((26 * Rnd) + 1)
Wert2 = Wert2 & Chr(Wert1 + Klein)
Wert1 = Int((10 * Rnd) + 1)
Wert2 = Wert2 & Right(Wert1, 1) 'Zahl
MsgBox Wert2
End Sub
komplette Zeilen löschen

Info:
Das Makro läuft von unten nach oben, da sonst Rücksprünge notwendig wären.

Folgendes Makro prüft pro Zeile die Zellfarbe der SpalteA und löscht die Zeile in der die Zelle Rot ist:

Sub RoteZeilenLöschen()
lZeile = Cells(Rows.Count, 1).SpecialCells(xlLastCell).Row
'makro zählt Rückwärts!
For i = lZeile To 1 Step -1
If Cells(i, 1).Interior.ColorIndex = 3 Then
Rows(i).Delete
End If
Next i
End Sub
aktive Zeile hervorheben
(keine sonstigen farbige Zellen möglich)
'Makro im VBA-Editor in die betreffende Tabelle schreiben!

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
'Alle Farben in Tabelle löschen
Cells.Interior.ColorIndex = xlNone
'neue Zeile einfärben
Rows(Target.Row).Interior.ColorIndex = 34
End Sub
Mit importierten Zahlen kann man nicht rechnen
(sind als Text importiert)
'Zu formatierenden Bereich selektieren
Sub TextZuZahl()
Dim C As Range
'Zahlenformat Standard
Selection.NumberFormat = "General"
For Each C In Selection
'Zahl mit 1 multiplzieren wegen Typumwandlung
C = C * 1
Next C
End Sub
Zeilenumbrüche ohne Zeilenumbruch: Das Quadrat muss weg.

Hier wird geprüft, ob die Zelle noch mit Zeilenumbruch formatiert ist. Nur wenn nicht, wird gelöscht.
'Zeilenumbruch Chr(10) durch anderes Zeichen im Bereich ersetzen
Sub ZeilenumbruchImBereichErsetzen()
Dim C As Range
Dim Zn
'Ersetzung zu Zeichen:
Zn = "" '<--Hier "" für nichts, " " für Leertaste
For Each C In Selection
If C.WrapText = False Then
C.Replace What:=Chr(10), Replacement:=Zn, LookAt:=xlPart
End If
Next C
End Sub
Zeichen(folge) in Text suchen Sub ZeichenSuchen()
Text = "Bert Körn"
Suche = "ö"  'ganze Wörter möglich
'InStr(Erstes Zeichen, Suchtext, was?)
x = InStr(1, Text, Suche)
MsgBox x
End Sub
Zeilenhöhe in Zentimeter festlegen

 

siehe auch:
Spaltenbreite in Zentimeter festlegen

von Frank Arendt-Theilen:

Sub ZeilenhoeheInCm()
Dim sHoehe As Single
Dim sAktuell As Single
Dim strText As String
Dim strAntwort As String
  sAktuell = Selection.RowHeight / 29.5
  strText = "Aktuelle Zeilenhöhe: " & Format(sAktuell, "###0.00 cm") _
    & Chr(13) & "Geben Sie die gewünschte Zeilenhöhe für die " & _
    "aktuelle Zeile oder Markierung in cm ein:"
  strAntwort = InputBox(strText, "Neue Zeilenhöhe festlegen", _
  Format(sAktuell, "###0.00"))
  If strAntwort <> "" Then
    sHoehe = CSng(strAntwort)
    Selection.RowHeight = sHoehe * 29.5
  End If
End Sub
Jede zweite Zeile farbig 'Jede ungerade Zeile wir Grau hinterlegt, bei jeder geraden die Farbformatierung gelöscht.
Sub JedeZweiteZeileGrau()
Start = 3 ' Start erst ab dieser Zeile
lZeile2 = Cells(Rows.Count, 1).SpecialCells(xlLastCell).Row
For i = Start To lZeile2
If i Mod 2 = 1 Then
Rows(i).Interior.ColorIndex = 15
Else
Rows(i).Interior.ColorIndex = xlNone
End If
Next i
End Sub
Zelladresse beim Verlassen dieser ausgeben 'Makro hinter die Tabelle, nicht in ein allgemeines Modul
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
MsgBox "Die alte Adresse lautete: " & [c1]
[c1] = Target.Address
End Sub

Hier wird die Zelle C1 als Zwischenspeicher mißbraucht.


Meine aktuellsten Exceltipps finden Sie hier: