Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Ganze Zeilen in Sheet vervielfältigen

Frage Entwicklung VB for Applications

Mitglied: ShitzOvran

ShitzOvran (Level 1) - Jetzt verbinden

07.07.2011, aktualisiert 16:46 Uhr, 3080 Aufrufe, 2 Kommentare

ich möchte mittels VBA in Excel Zellen vervielfältigen. Wie oft, wird anhand einer Zelle festgelegt.

Hallo Spezialisten da draußen,

wie man vllt erahnen kann, habe ich ein Problem...
ich habe eine Tabelle indem mehrere Zeilen vorkommen. in der Tabelle sind auch Mengen angegeben (siehe Beispiel)
ad13ae53baa19124c737bb514044aa24 - Klicke auf das Bild, um es zu vergrößern

Jetzt ist es so, dass die Zeilen, die indem die Menge mehr als '1' ist, so oft kopiert werden soll, dass ich im So viele Zeilen habe, dass überall Menge '1' steht.

also im Endeffekt soll es so aussehen:
cc21ddb264f21aa7efb8525683de7c72 - Klicke auf das Bild, um es zu vergrößern

Die Tabelle ist natürlich stark vereinfacht. In den meisten Fällen ist es so, dass ich hunderte Datenasätze mit unzähligen Spalten habe. Ich müsste also irgendwie dynamisch sagen können, in welcher Spalte die Mengen stehen, auf die sich das Skript beziehen soll... (zB: die Spalte der aktiven Zelle, oder so) eine weitere Schwierigkeit ist zudem noch, dass er nach kopieren dann die werte auf 1 ändern soll.. oder evtl, mehrmalig durchgehen soll, und nach jedem kopieren und einfügen den wert herunterzählt und in der neu eingefügten Zelle den Wert '1' einträgt. Natürlich können auch Spaltenüberschriften vorhanden sein... alles sehr kopliziert.

ich habe zwar ein Skript mitdem ich einfach jede Zelle verdoppeln kann, aber das ist in diesem fall wohl eher unbrauchbar,.. aber trotzdem möchte ich euch es nicht vorenthalten:

01.
Sub zeilen_verdoppeln() 
02.
Dim lastrow As Long, i As Long 
03.
Dim wks1 As Worksheet 
04.
 
05.
Set wks1 = ActiveSheet 
06.
lastrow = wks1.Cells(Rows.Count, 1).End(xlUp).Row  'durchgehend genutzte Spalte nutzen 
07.
 
08.
For i = lastrow To 1 Step -1 
09.
    wks1.Rows(i + 1).Insert 
10.
    wks1.Rows(i).Copy wks1.Rows(i + 1) 
11.
Next i 
12.
End Sub

ich hoffe ihr habt irgendeine idee, wie ich anfangen kann

Kurzfristig habe ich das mit einer Formel gelöst, diese ist auf dem zweiten Tabellenblatt.
01.
=INDEX(Tabelle1!A:A;999-SUMMENPRODUKT(N(ZEILE(Tabelle1!A1)<=TEILERGEBNIS(9;BEREICH.VERSCHIEBEN(Tabelle1!D$1;;;ZEILE($1:$999)))))+1)
elegeanter wäre es aber natürlich über ein Skript

mfg
Shitz
Mitglied: bastla
07.07.2011 um 17:18 Uhr
Hallo ShitzOvran!

Du hattest es ja fast schon:
01.
Sub zeilen_verdoppeln() 
02.
Const Spalte = "B" 
03.
 
04.
Dim lastrow As Long, i As Long, Anzahl As Long 
05.
Dim wks1 As Worksheet 
06.
 
07.
Set wks1 = ActiveSheet 
08.
lastrow = wks1.Cells(Rows.Count, TheColumn).End(xlUp).Row  'durchgehend genutzte Spalte nutzen 
09.
 
10.
For i = lastrow To 1 Step -1 
11.
    Anzahl = Cells(i, Spalte).Value 
12.
    If Anzahl <> 1 Then 
13.
        Cells(i, Spalte).Value = 1 
14.
        For j = 1 To Anzahl - 1 
15.
            wks1.Rows(i + 1).Insert 
16.
            wks1.Rows(i).Copy wks1.Rows(i + 1) 
17.
        Next 
18.
    End If 
19.
Next i 
20.
End Sub
Für "Spalte" kannst Du natürlich auch eine Variable und/oder einen numerischen Wert verwenden ...

Grüße
bastla
Bitte warten ..
Mitglied: ShitzOvran
13.07.2011 um 16:19 Uhr
vielen dank,

hab den Code noch ein bisschen angepasst und nu läufts...

ich weiß, nicht schön, aber selten

01.
Sub zeilen_verdoppeln() 
02.
 
03.
Dim Spalte          As String 
04.
Dim lastrow         As Long 
05.
Dim i               As Long 
06.
Dim Anzahl          As Variant 
07.
Dim wks1            As Worksheet 
08.
Application.EnableEvents = False 
09.
 
10.
 
11.
On Error GoTo Fehler 
12.
Spalte = ActiveCell.Column 
13.
Set wks1 = ActiveSheet 
14.
lastrow = wks1.Cells(Rows.Count, 1).End(xlUp).Row 
15.
For i = lastrow To 1 Step -1 
16.
    Anzahl = Cells(i, ActiveCell.Column).Value 
17.
    If IsNumeric(Anzahl) And Anzahl > 1 Then 
18.
            Cells(i, ActiveCell.Column).Value = 1 
19.
        For j = 1 To Anzahl - 1 
20.
            wks1.Rows(i + 1).Insert 
21.
            wks1.Rows(i).Copy wks1.Rows(i + 1) 
22.
        Next 
23.
    End If 
24.
Fehler: 
25.
Next i 
26.
End Sub
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Excel - letzte Zeile aus mehreren Sheets ein ein neues Sheet untereinander kopieren
Frage von ITNoobNewMicrosoft Office4 Kommentare

Hallo zusammen, ich versuche, mir ein Dashboard in Excel aus verschiedenen Excel-basierten Reports zusammenzustellen. Dabei ist für mich immer ...

Microsoft Office
EXCEL ganze Zeile farblich markieren, wenn Bedingung erfüllt
gelöst Frage von dumbledorexxlMicrosoft Office2 Kommentare

Hallo und guten morgen, habe folgendes Problem und bekomme es nicht gelöst. in dieser Tabelle soll die ganze Zeile ...

Multimedia
Software um USB-Sticks zu vervielfältigen
Frage von hanheikMultimedia18 Kommentare

Hi, ich muss einige hundert identische USB-Sticks kopieren, kennt jmd. ein Programm dafür? Es soll den Stick formatieren, alles ...

Datenbanken
Access Abfrage in nächste freie Zeile von Excel Sheet kopieren
gelöst Frage von Dr.CornwallisDatenbanken5 Kommentare

Hallo zusammen, ich wollte eine Access(2010) Abfrage in eine verlinkte Excel Tabelle anfügen(Anfügeabfrage), leider wurde diese Funktion von Microsoft ...

Neue Wissensbeiträge
Windows 10

Windows 10 Hello-Anmeldung per Foto ausgehebelt

Tipp von kgborn vor 3 StundenWindows 10

Windows Hello ist eine Funktion, um sich per Fingerabdruck-, Gesichts- oder Iriserkennung bei Windows 10-Geräten anzumelden (siehe), setzt aber ...

Perl

Perl hat heute Geburtstag: 30 Jahre Perl: Lange Gesichter zum Geburtstag

Information von Penny.Cilin vor 10 StundenPerl2 Kommentare

Hallo, auch wenn es wenige wissen und noch weniger Leute es nutzen. Perl hat heute Geburtstag. 30 Jahre Perl ...

Sicherheit

Blackberry stirbt - Keine Updates für Priv mehr

Tipp von certifiedit.net vor 11 StundenSicherheit1 Kommentar

Blackberry wird zu einer 08/15 Firma und geht wohl mehr und mehr den Weg, den HTC schon ging. Von ...

Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 2 TagenWindows 1012 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Heiß diskutierte Inhalte
Windows Server
SCCM 2016: PXE Boot des Clients schlägt fehl
Frage von gabeBUWindows Server23 Kommentare

Hallo Zusammen Ich habe eine Testumgebung erstellt um über SCCM 2016 einen virtuellen Client aufzusetzen. Folgende Maschinen habe ich ...

Netzwerkgrundlagen
Belibiges Teilnetz einer Subnetzmaske rausfinden?
gelöst Frage von CenuzeNetzwerkgrundlagen19 Kommentare

Wundervollen Gutentag, mittlerweile kann ich Subnetting so einigermaßen, aber ein Problem habe ich noch. Netzwerkadresse und Boradcast errechnen ist ...

LAN, WAN, Wireless
WLAN Reichweite erhöhen mit neuer Antenne
gelöst Frage von gdconsultLAN, WAN, Wireless12 Kommentare

Hallo, ich besitze einen TL-WN722N USB-WLAN Dongle mit einer richtigen Antenne. Ich frage mich jetzt ob man die Reichweite ...

Exchange Server
Exchange empfängt Emails - Kann aber keine Senden
gelöst Frage von niklasschaeferExchange Server11 Kommentare

Hallo, ich stehe gerade bei mir zuhause vor folgender Problemstellung. Gegeben sind 2x Hyper-V Host mit Windows Server 2016 ...