Anzeige
Archiv - Navigation
1956to1960
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

MsgBox bei nicht erfüllter Bedingung

MsgBox bei nicht erfüllter Bedingung
02.01.2024 03:31:06
Patrick 2004
Hallo,
kann mir jemand bei der Antwort von Piet helfen
habe keine Ahnung wo ich den Codeteil einsetzen soll

"benutze diesen Codeteil, damit sollte es klappen. Es muss die Zahl 18 herauskommen!
Zahl = WorksheetFunction.CountA(Range("H4:H20,H22")) 'gesamt = 18

Piet"


ich bekomme das einfach nicht hin

Private Sub CommandButton1_Click()

If Range("H4,H5,H6,H7,H8,H9,H10,H11,H12,H13,H14,H15,H16,H17,H18,H19,H20,H22") = "" Then
MsgBox ("Bitte fülle alle Prozeßparameter-Felder aus und gib einen Grund der Änderung an")
Exit Sub
End If
ActiveSheet.Unprotect "Geheim"
Dim lz1 As Long
lz1 = Cells(Rows.Count, "O").End(xlUp).Row + 1
If lz1 4 Then lz1 = 4
Range("H22:M26").Select
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlTop
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Range("H4,H5,H6,H7,H8,H9,H10,H11,H12,H13,H14,H15,H16,H17,H18,H19,H20,H22,H23,H24,H25,H26").Select
Selection.Copy
Range("O" & lz1).PasteSpecial _
Paste:=xlPasteValuesAndNumberFormats, _
Operation:=xlNone, _
SkipBlanks:=False, _
Transpose:=True
Application.CutCopyMode = False
Selection.UnMerge
Range("H22:M22,H23:M23,H24:M24,H25:M25,H26:M26").Select
Range("H26").Activate
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlTop
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Merge
Range("D22").Select
ActiveCell.FormulaR1C1 = ""
ActiveSheet.Protect "Geheim", DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Ist ja n Ding!
02.01.2024 05:43:30
RPP63
Moin!
Vorsicht, Sarkasmus!
Ist mir auch völlig unverständlich, dass Dir niemand zwischen 1:20 und 3:00 Uhr nachts antwortet.
Dennoch zwei Vorschläge:
• Bleibe im alten Thread
• Arbeite Dich doch einfach erstmal in die Grundlagen ein.
Was Du da hast, ist Rekordercode!
Wenn man "programmiert", haben .Select und .FormulaR1C1 nix im Code zu suchen.
Und dass
Range("H4,H5,H6,H7,H8,H9,H10,H11,H12,H13,H14,H15,H16,H17,H18,H19,H20,H22,H23,H24,H25,H26")
das Gleiche ist wie das vorgeschlagene
Range("H4:H20,H22")
könnte auch Dir auffallen.
Und ja, ich ahne, dass Deine Intention zur Erstellung eines UserForms die scheinbare (SIC!) Professionalität ist.
Mache doch "einfach" erstmal eine benutzerdefinierte Datengültigkeit mit Excel-Bordmitteln, bevor Du Dich an VBA im berufsbedingten Umfeld heranwagst.

Gruß Ralf
Anzeige
Zur Sicherheit
02.01.2024 06:42:31
RPP63
Ich habe den falschen Range-Bandwurm kopiert (abtippen wollte ich ihn wirklich nicht).
Gemeint war der "kürzere"
Range("H4,H5,H6,H7,H8,H9,H10,H11,H12,H13,H14,H15,H16,H17,H18,H19,H20,H22")
der gleichbedeutend mit folgendem ist:
Range("H4:H20,H22")
AW: Werte bei erfüllter Bedingung übertragen
02.01.2024 11:50:18
GerdL
Moin
Private Sub CommandButton1_Click()


Const strMessage As String = "Bitte fülle alle Prozeßparameter-Felder aus und gib einen Grund der Änderung an"

Dim lngRow As Long
Dim Rng As Range: Set Rng = Range("H4:H20,H22:H26")

If WorksheetFunction.CountA(Rng) Rng.Count Then '22
MsgBox strMessage
Set Rng = Nothing
Exit Sub
End If


lngRow = Cells(Rows.Count, 15).End(xlUp).Row + 1
If lngRow 4 Then lngRow = 4

ActiveSheet.Unprotect "Geheim"

Cells(lngRow, 15).Resize(1, Rng.Areas(1).Count) = Application.Transpose(Rng.Areas(1))
Cells(lngRow, 15).Offset(0, Rng.Areas(1).Count).Resize(1, Rng.Areas(2).Count) = Application.Transpose(Rng.Areas(2))

Cells(22, 4).ClearContents
Set Rng = Nothing

ActiveSheet.Protect "Geheim", DrawingObjects:=True, Contents:=True, Scenarios:=True

End Sub


Gruß Gerd
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige