Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Anzahl Pixel bis Spalte I ermittlen

Anzahl Pixel bis Spalte I ermittlen
11.05.2009 11:18:45
Joachim
Hallo
Ich mache mit folgendem Code einen Screenshot von meiner Ansicht.

Public Sub MakeScreenshot()
Dim FormHwnd As Long
Dim DeskHwnd As Long
Dim hdc As Long
Dim hdcMem As Long
Dim rect As RECT_Type
Dim junk As Long
Dim fwidth As Long
Dim fheight As Long
Dim hBitmap As Long
DeskHwnd = GetDesktopWindow()
FormHwnd = GetActiveWindow()
Call GetWindowRect(FormHwnd, rect)
fwidth = rect.right - rect.left
fheight = rect.bottom - rect.top
hdc = GetDC(DeskHwnd)
hdcMem = CreateCompatibleDC(hdc)
hBitmap = CreateCompatibleBitmap(hdc, fwidth, fheight)
If hBitmap  0 Then
junk = SelectObject(hdcMem, hBitmap)
junk = BitBlt(hdcMem, 0, 0, fwidth, fheight, hdc, rect.left, rect.top, SRCCOPY)
junk = OpenClipboard(DeskHwnd)
junk = EmptyClipboard()
junk = SetClipboardData(CF_BITMAP, hBitmap)
junk = CloseClipboard()
End If
junk = DeleteDC(hdcMem)
junk = ReleaseDC(DeskHwnd, hdc)
End Sub


Der Code nimmt aber immer den kompletten Bilschirm auf. Ich bräuchte aber nur ein Screenshot bis Spalte I. Im prinzip kann ich auch
fwidth = xxx
fheight = xxx
duch Zahlen ersetzen ind zwar so, dass ich genau bis zur Spalte I komme. Das ist aber starr. Sobald ich zoome, oder Spaltenbreite verändere, stimmt diese Zahl nicht mehr. Kann ich vorher irgend wie ermitteln, wie weit (wieviel Pixel) Spalte I von links weg ist und diese Zahl dann durch die Konstante ersetzen, damit das ganze dynamisch bleibt ?
Danke mal
Joachim

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schwierig was zu sagen, ggf CopyPicture verwen
11.05.2009 16:44:11
Daniel
weil dein Makro viele Befehle enthält, die nicht zum Standardbefehlsumfang von Excel gehören.
wenn du nur den Screenshot von einem Bestimmten Zellbereich ohne die ExcelÜberschriften benötigst, dann kannst du auch dafür den Befehl:
SELECTION.COPYPICTURE...
verwenden. Der Befehl erstellt eine Bildschirmkopie vom angebenen Zellbereich in die Zwischenablage und ist seit Excel XP verfügbar. (weitere Infos in der Excelhilfe)
der Befehel ist auch ohne VBA ausführbar, allerdings liegt er etwas versteckt, da man die SHIFT-Taste drücken muss, wenn man auf BEARBEITEN klickt. Nur dann wird der Befehl im Menü angezeigt.
Gruß, Daniel
Anzeige
Danke Daniel, war ein SUPER Tipp ...
12.05.2009 10:54:11
Joachim
..und ist tausendmal einfacher ;-)
Gruss
Joachim
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige