Registriert seit: 19.10.2020
Version(en): 2016
Hallo zusammen,
ich schreibe zurzeit eine große Projektarbeit.
Mein zusammengefügtes Makro funktioniert bis zu einen gewissen Punkt, dann wird die Formel zwar noch berechnet aber zeigt kein Ergebnis mehr an.
Es wurden diverse Möglichkeiten geprüft, leider hat keine geholfen. Auch wenn man das Makro einzeln auslöst wird kein Ergebnis angezeigt. Dies gilt auch für die nachfolgende Formel. Im Laufe des Makros wurde die Formel bereits des öfteren verwendet und funktionierte dort ohne Probleme.
Begrenzt man die Formel auf die Spalte "LA", funktioniert diese.
An was kann dies liegen? Evtl. maximale Anzahl von Formeln erreicht oder maximale Berechnungsanzahl?
Evtl. auch an was anderen?
Für Eure Hilfe wär ich dankbar.
With Worksheets("Sheet1")
x = .Range("LA1").Column
y = .Range("BOJ1").Column
For i = x To y
If .Cells(i, 59).Value2 = .Cells(ggge, 60) And _
.Cells(i, 3).Value2 = "0" And _
.Cells(i, 14).Value2 = "1" And _
.Cells(i, 1).Value2 >= .Cells(i, 36) And _
.Cells(i, 1).Value2 <= .Cells(i, 37) Then
.Cells(i, 5).Value2 = "1"
Else: .Cells(i, 5).Value2 = "0"
End If
Next
End With
MfG
Registriert seit: 16.04.2014
Version(en): xl2016/365
Hola,
verlinkst du bitte deine Fragen in den verschiedenen Foren gegenseitig?
Danke.
Gruß,
steve1da
Registriert seit: 19.10.2020
Version(en): 2016
Kann ich gerne machen, wenn gewünscht.
Anbei der Link zum VBA Forum.
https://www.vba-forum.de/View.aspx?ziel=...n_in_MakroEine Idee an was es liegen könnte?
Danke und mfG
Registriert seit: 11.04.2014
Version(en): Office 365
Hallo,
als erstes fällt mir auf, dass deine Zahlen in Anführungszeichen stehen, das sind dann Texte, damit kann Excel nicht rechnen (meistens).
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter,
der Misserfolg ist ein Waisenkind
Richard Cobden
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
Moin!
Die Variablen x und y stellen Spalten-Nummern dar.
In der Schleife weist Du ihnen aber Zeilen zu!
[Cells(Zeile, Spalte)]
Ist das beabsichtigt?
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 19.10.2020
Version(en): 2016
Hallo,
das Ziel soll sein, folgende Formel Horizontal von LA bis BOJ zu berechnen.
With Worksheets("Sheet1")
If .Range("LA59").Value = .Range("LA60").Value _
And .Range("LA3").Value = 0 _
And .Range("LA14").Value = 1 _
And .Range("LA1").Value >= .Range("LA36").Value _
And .Range("LA1").Value <= .Range("LA37").Value _
Then
.Range("LA5").Value = 1
Else
.Range("LA5").Value = 0
End If
Next
End With
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo,
Code:
Sub prcX()
Dim lngC As Long
With Worksheets("Sheet1")
For lngC = 313 To 1752
If .Cells(59, lngC).Value = .Cells(60, lngC).Value _
And .Cells(3, lngC).Value = 0 _
And .Cells(14, lngC).Value = 1 _
And .Cells(1, lngC).Value >= .Cells(36, lngC).Value _
And .Cells(1, lngC).Value <= .Cells(37, lngC).Value _
Then
.Range(5, lngC).Value = 1
Else
.Range(5, lngC).Value = 0
End If
Next
End With
End Sub
Gruß Stefan
Win 10 / Office 2016
Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:1 Nutzer sagt Danke an Steffl für diesen Beitrag 28
• karlk
Registriert seit: 19.10.2020
Version(en): 2016
Danke Stefan! Funktioniert
Daraus habe ich jetzt noch folgendes Makro gebaut:
With Worksheets("Sheet1")
Dim lnga As Long
Dim lngb As Long
Dim x As Long
For x = 12 To 13
For lnga = 313 To 1752
For lngb = 1797 To 3236
If .Cells(lnga, 3).Value = 1 And _
.Cells(lnga, 12).Value > "" Then
.Cells(lnga, x).Copy .Cells(lngb, 13)
End If
Next
Next
Next
End With
Leider kommt kein Ergebnis dabei raus, das Makro hängt sich nur kurz auf. Kannst du einen Fehler im Makro erkennen?
Kurz erklärt: Wenn LA3 = LA1 und LA12 > "" dann soll LA12:LA13 nach BQC13 kopiert werden. Das ganze wieder für den Bereich von LA bis BOJ und einkopiert wird es von BQC bis DTL.
Danke
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo,
(20.10.2020, 12:52)karlk schrieb: Kurz erklärt: Wenn LA3 = LA1 und LA12 > "" dann soll LA12:LA13 nach BQC13 kopiert werden. Das ganze wieder für den Bereich von LA bis BOJ und einkopiert wird es von BQC bis DTL.
im Code prüfst Du aber LA3 =1 und LA12 > "" geht nicht. Was willst Du da prüfen? Ob LA12 leer ist? Und klar das es ein wenig dauert, Immerhin wird deine If-Abfrage über 4 Mio durchlaufen.
Code:
With Worksheets("Sheet1")
Dim lnga As Long
Dim lngb As Long
Dim x As Long
For x = 12 To 13
For lnga = 313 To 1752
For lngb = 1797 To 3236
If .Cells(lnga, 3).Value = 1 And _
Not IsEmpty(.Cells(lnga, 12).Value) Then
.Cells(lnga, x).Copy .Cells(lngb, 13)
End If
Next
Next
Next
End With
Gruß Stefan
Win 10 / Office 2016
Registriert seit: 19.10.2020
Version(en): 2016
Danke, genau so funktioniert sie. Die Bezeichnung mit der leeren Zelle war mir noch nicht bekannt.
Viele Grüße