Zahl in mehrere Zellen eingeben
#11
Hallo, ich habe mir gedacht, dass es schwer sein wird.
Hier als Anhang jetzt die original Tabelle.
Soweit ich konnte, habe ich die restlichen Tabellen, formel und makros entfernt.

Vielen Dank für eure Unterstützung

LG perostojkov


Angehängte Dateien
.xlsx   Test.xlsx (Größe: 103,06 KB / Downloads: 11)
Antworten Top
#12
Hallöchen,

also, wenn ich nur Dein Bild anschaue, scheint die Eingabe immer bei einem Wechsel zu erfolgen?

Vorgehensweise:
- Wechsel per Formel feststellen
- Anhand des Ergebnisses filtern
- In erster sichtbarer Datenzelle Deine Zahl eingeben
- mit Doppelklick auf untere rechte Ecke automatisch ausfüllen - es werden nur die sichtbaren Zellen berücksichtigt
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#13
Danke, ich habe dich leider nicht verstanden was du meinst.

Ich habe erst mal das ganze mit REST Formel gelöst.
Es funktioniert gut, siehe Anhang

Ich denke, dass es kein problem sein wird das ganze mit CHANGE und VBA, REST zu lösen.  Etwas ahnliches habe ich schon mal gemacht, muss nachher suchen.
Im Moment habe ich Stress, falls es nicht klappt, werde mich noch mal melden. Meine vba Lösung werde ich auch posten.

Vielen Dank  euch allen


Angehängte Dateien
.xlsx   Test1.xlsx (Größe: 102,19 KB / Downloads: 10)
Antworten Top
#14
Hallöchen,

   
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#15
Hallo, ich kann es doch nicht.

Das was ich meinte, ist doch was ganz anderes.

Ich werde mich riesig freuen, wenn jemand (siehe Test.xlsx) auch ne VBA Lösung vorschlagen kann.



LG perostojkov
Antworten Top
#16
Hallöchen,

wenn Du irgendeine Formel bilden kannst - Du schriebst ja was von REST, die Dir die betreffenden Zeilen irgendwie kennzeichnet, dann geht das mit dem Filtern ...

Mit einem Makro könnte man es so machen:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'Wenn Spalte = 2 (B) und Anzahl der Zellen = 1, dann
If Target.Column = 2 And Target.Cells.Count = 1 Then
  'Wenn Zeile >= 3, dann mit Anzahl Zeilen aus B1 ausfuellen
  If Target.Row >= 3 Then Target.Resize(Cells(1, 2).Value).FillDown
'Ende Wenn Spalte = 2 (B) und Anzahl der Zellen = 1, dann
End If
End Sub


Das Makro überschreibt dann aber rigoros, ohne nachzufragen, alle n Zellen ab der Eingabezelle.
Falls man da einschreiten will, muss man den code entsprechend erweitern.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • perostojkov
Antworten Top
#17
Hallo schauan,
DANKE ich habe dein Code ausprobiert.
Es war mir irgendwie zu hart bzw ich kann den nicht erweitern.

Ich habe jetzt etwas anderes gemacht. Es ist blöd mit Select, vielleicht kann jemand  den optimieren, sind bestimmt viele Fehler drin.
Macht aber genau das, was ich am Anfang eigentlich wollte, ausser die Übertragung auf der nächsten Seite.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim RllAnzahl As Byte
If Not Intersect(Target, Range("v13:w35,v55:w78")) Is Nothing Then
Application.ScreenUpdating = False
    RllAnzahl = Range("V12").Value
    ActiveCell.Offset(-1, 0).Select
    For I = 1 To RllAnzahl - 1
        Selection.Copy
        ActiveCell.Offset(1, 0).Select
        If ActiveCell.Value = vbNullString Then
            ActiveCell.PasteSpecial
        Else: Exit Sub
        End If
    Next I
    ActiveCell.Offset(1, 0).Select
    ActiveCell.Offset(100, 0).Copy ' weil copy selecton nervt
End If
Application.ScreenUpdating = True
End Sub

LG
Antworten Top
#18
Excel ist kein Registerkarte von Papier.
Lehne das 'Papierdenken' ab.
Erstelle die Daten wie ein Database: Records (Zeilen) und Fields (Spalten)
Dann verdämpft dein 'Problem'.
Dus hast ein Datenstrukturproblem, kein Excel Problem.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#19
Hallöchen,

wenn DU meine Kommentare liest, dann steht doch da, was der Code tut.

In Deinem Beipiel hast Du die Daten in Spalte B, ab B3, und die Anzahl in B1.
Wenn Du z.B. was in B3 eingibst und hast oben die 4, dann wird Dir B3:B6 ausgefüllt. Gibst Du anschließend was in B7 ein, dann kommen die Einträge in B7:B10 usw.

Meine Prüfung ist. z.B.
'Wenn Spalte = 2 (B) und Anzahl der Zellen = 1, dann
If Target.Column = 2 And Target.Cells.Count = 1 Then

und Deine
If Not Intersect(Target, Range("v13:w35,v55:w78")) Is Nothing Then

Meine Anzahl ist
Cells(1, 2).Value --> entspricht Zeile 1, Spalte 2, also B2

und Deine
RllAnzahl = Range("V12").Value

Dann solltest Du doch was draus machen können ...
Wo ist denn Dein Code her?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • perostojkov
Antworten Top
#20
Hallo, ich wusste es, dass ihr schimpfen werdet.
Den Code habe ich selbst gemacht, sieht man doch.

Bin eigentlich nur Maschinenarbeiter der die Produktionsdaten in Excel festhalten muss. Die Vorlage ist fast 20j alt, wurde kaum verändert, ich wollte uns nur etwas einfacher machen. Nicht nur vba, auch meine normale excel Kenntnisse sind schlecht. 

LG
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste