Makro: Gibts was schnelleres?

  • #1
B

Billy

Guest
tag auch

zuerst die Information dass ich den Thread hier umgeschrieben habe weil meine alte Frage sich erledigt hat =).

nun meine neue Frage: Kann man folgenden Code hier Noch schneller machen oder nicht?

Folgendes hab ich im Worksheet:
Code:
Private Sub WorkSheet_Change(ByVal Target As Excel.Range)
 Call Check(schulze, reimann, Schulzer Einrico,Reimann Norbert, B, BE, 11, 49, 4,6)
End Sub

dies ist Modul 1 (Check)
Code:
Option Explicit
Global split_kurzn() As String
Global split_namen() As String
Global split_zeilen() As String
Function Check(Kurznamen, Namen, anfang_spalte, ende_spalte, anfang_zeile, ende_zeile, fuehrer_zeilen)

'split_kurzn() hat alle Kurznamen in sich als Array gespeichert
'split_namen() hat alle Namen in sich als Array gespeicheret
'split_zeilen() hat alle Führer_zeilen in sich als Array

split_kurzn = split(Kurznamen, ,)
split_namen = split(Namen, ,)
split_zeilen = split(fuehrer_zeilen, ,)

Call Kontrolle(anfang_spalte, ende_spalte, anfang_zeile, ende_zeile)
End Function

und das hier modul 2 (Kontrolle)
Code:
Option Explicit
Function Kontrolle(anfang_spalte, ende_spalte, anfang_zeile, ende_zeile)
Dim bereich As String, columns As Long
bereich = anfang_spalte & anfang_zeile & : & ende_spalte & ende_zeile
columns = ActiveSheet.Range(bereich).columns.Count - 1
Dim x As Long, y As Long, i As Long, fuehrer As Long, fuehrer_spalte As String
Dim kurzname As String, temp As String, t_spalte As String, l_anz As Long, Zelle As Range
fuehrer = 0

Application.EnableEvents = False
For x = 2 To columns
 t_spalte = Replace(Cells(1, x).Address(rowabsolute:=False, Columnabsolute:=False), 1, )
 bereich = t_spalte & anfang_zeile & : & t_spalte & ende_zeile
 For i = 0 To UBound(split_kurzn)
  kurzname = Replace(split_kurzn(i),  , )
  fuehrer = ActiveSheet.Application.WorksheetFunction.CountIf(ActiveSheet.Range(bereich), kurzname)
  If fuehrer >= 2 Then
   For Each Zelle In ActiveSheet.Range(bereich)
    If Zelle.Value = kurzname Then
     temp = Zelle.Address(rowabsolute:=False, Columnabsolute:=False)
     If l_anz = 0 Then
      fuehrer_spalte = temp
     Else
      fuehrer_spalte = fuehrer_spalte & ,  & temp
     End If
     l_anz = l_anz + 1
    End If
   Next
   Application.EnableEvents = True
   MsgBox da ist was doppelt bei  & fuehrer_spalte &  für den Führer  & split_namen(i)
   Application.EnableEvents = False
   Cells(split_zeilen(i), x).Value = 
  ElseIf fuehrer = 1 Then
   Cells(split_zeilen(i), x).Value = X
  ElseIf fuehrer = 0 Then
   Cells(split_zeilen(i), x).Value = 
  End If
  fuehrer = 0
  fuehrer_spalte = !
 Next
Next
Application.EnableEvents = True
End Function

falls wer was schnelleres findet, wäre ich froh wenn Er/Sie dies mir mitteilen könnte

mfg billy
 
  • #2
* noch oben Post *

ich kann ja verstehen wenn ihr nichts schnelleres findet, aber könntet ihr mir das bitte noch schriftlich bestätigen dass meine Variante die schnellste ist? =)

so hab ich was womit ich bei meinem Chef abstützen kann ;D

mfg billy
 
Thema:

Makro: Gibts was schnelleres?

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben