VBA Nur Zelleninhalte kopieren, mit Ausnahmen

Moderator: ModerationP

VBA Nur Zelleninhalte kopieren, mit Ausnahmen

Beitragvon HEXBSC » 27. Sep 2021, 17:56

Hallo zusammen,

ich verzweifle gerade etwas und komme nicht mehr weiter...

Folgendes Vorhaben:

- Kopieren eines Tabellenblatts mit Inhalten in eine neue Datei und Versand dieser als Anhang über Outlook.
- dabei werden einzelne Formeln benötigt, die also mitkopiert werden müssten. Diese befinden sich in Spalte A und F2
- in F2 befindet sich ein Hyperlink mit folgendem Inhalt:
Code: Alles auswählen
=HYPERLINK("mailto:"&B1&"?"&"cc="&B2&"&subject="&B3&"&body=";"create mail in Outlook")


Ich verwende folgenden Code aus einem alten Thema: http://office-loesung.de/p/viewtopic.php?f=166&t=809689

Code: Alles auswählen
Sheets("Sheet1").Select
                                           
                FormulaException = Range("A:A").Formula
                FormulaException = Range("F2").Formula
                ActiveSheet.Copy
                With ActiveSheet.UsedRange
                .Cells.Value = .Cells.Value
                End With
                Range("A:A").Formula = FormulaException
                Range("F2").Formula = FormulaException
...


Der Code erzeugt dann einen riesigen Anhang (ca. 20MB), anstatt 88kB und überschreibt mir die komplette Spalte A mit dem Inhalt des Hyperlinks ("create mail in Outlook"). Den Hyperlink in F2 wird korrekt kopiert...
Tausche ich die Reihenfolge der Ausnahmen wird die Datei 88kB groß, aber der Hyperlink wird nicht kopiert und die Zelle bleibt ler...
Wenn ich nur ein Formularausnahme anstatt der beiden verwende, gibt es kein Problem...

Hat jemand eine Idee, wie man das am geschicktesten lösen kann?

Vielen Dank schon mal vorab für euren Input und Ideen.

Schöne Grüße
hexbsc
HEXBSC
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 158
Registriert: 08. Nov 2012, 10:59

Re: VBA Nur Zelleninhalte kopieren, mit Ausnahmen

Beitragvon 1Matthias » 27. Sep 2021, 18:15

Moin!
Also bei mir wurde eine Musterdatei nicht so aufgebläht - ist aber nicht dein Original. Aber warum nutzt du nicht einfach nur
ActiveSheet.Copy
Damit werden doch die Formeln und auch der Hyperlink mit kopiert. Da bräuchtest du doch das mit den Formularexeption nicht mehr.
Zu den FormularExeption noch. WIe ich das sehe, ist da eine Variable Der weist du nacheinander einen Wert zu. Es bleibt dann nur der letzte Wert stehen. Wenn du es wirklich darüber lösen willst, solltest du ggf. zwei Variablen nutzten. Einen für Spalte A und einen für F2.
VG
1Matthias
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 963
Registriert: 15. Aug 2017, 18:36

Re: VBA Nur Zelleninhalte kopieren, mit Ausnahmen

Beitragvon Flotter Feger » 27. Sep 2021, 18:21

Warum füttert nur keiner mehr die Suchmaschinen mit seinem Anliegen ...

Nur als kleines Makro.
https://learnexcelmacro.com/wp/2012/08/mail-one-sheet/

Oder wie man sich die passende Excel-Function in die SchnellstartLeiste holt.
https://www.repairmsexcel.com/blog/send ... attachment

Sabina
Benutzeravatar
Flotter Feger
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 3255
Registriert: 24. Okt 2016, 16:40

Re: VBA Nur Zelleninhalte kopieren, mit Ausnahmen

Beitragvon HEXBSC » 27. Sep 2021, 18:29

1Matthias hat geschrieben:Moin!
Also bei mir wurde eine Musterdatei nicht so aufgebläht - ist aber nicht dein Original. Aber warum nutzt du nicht einfach nur
ActiveSheet.Copy
Damit werden doch die Formeln und auch der Hyperlink mit kopiert. Da bräuchtest du doch das mit den Formularexeption nicht mehr.
Zu den FormularExeption noch. WIe ich das sehe, ist da eine Variable Der weist du nacheinander einen Wert zu. Es bleibt dann nur der letzte Wert stehen. Wenn du es wirklich darüber lösen willst, solltest du ggf. zwei Variablen nutzten. Einen für Spalte A und einen für F2.
VG


Hallo 1Matthias,

sorry, ich habe hier einen kleinen Hinweis vergessen. Ich kann leider nicht alle Formeln mitkopieren, da sich außer die in Spalte A befindlichen auf ein anderes Tabellenblatt der Ursprungsdatei beziehen...

Noch eine Idee?


Flotter Feger hat geschrieben:Warum füttert nur keiner mehr die Suchmaschinen mit seinem Anliegen ...

Nur als kleines Makro.
https://learnexcelmacro.com/wp/2012/08/mail-one-sheet/

Oder wie man sich die passende Excel-Function in die SchnellstartLeiste holt.
https://www.repairmsexcel.com/blog/send ... attachment

Sabina

Danke für die Links

Grundsätzlich funktioniert der Versand von Mails ja, das ist nicht das Problem. Ich versuche einen Teil der Formeln zu übernehmen und die anderen nur als Werte zu kopieren. Daran scheitert es...



Vielen Dank
hexbsc
HEXBSC
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 158
Registriert: 08. Nov 2012, 10:59

Re: VBA Nur Zelleninhalte kopieren, mit Ausnahmen

Beitragvon Flotter Feger » 27. Sep 2021, 19:26

Hallo,

ja ... so kleine Hinweise, die fehlen, können eine Antwort ganz dumm aussehen lassen.

Andere Idee ... kopiere das Blatt und dann schmeist du alle Formel raus, die du nicht brauchst. Range("").copy und Einfügen -> nur Werte.
Das zeichnest du dir mit dem Makro-Rekorder auf ... dürfte eh immer das Gleiche sein.

Oder andersherum ... Sheet kopieren ... Strg+A -> Einfügen -> Werte. Dann kopierst du noch die Spalte A in das Sheet und alles, was du sonst noch so brauchst.

Die Codes zusammensetzen ... fertisch. Senden nicht vergessen ... :wink:

Sabina
Benutzeravatar
Flotter Feger
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 3255
Registriert: 24. Okt 2016, 16:40

Re: VBA Nur Zelleninhalte kopieren, mit Ausnahmen

Beitragvon DerHoepp » 28. Sep 2021, 09:21

Hallo und moin allerseits,

ich würde in etwa so vorgehen (ausnahmsweise mal ausführlichst benannt):
Code: Alles auswählen
Option Explicit

Sub testen()
    Dim FormulaRange As Range
    Dim Quelltabelle As Worksheet
    Dim Zieltabelle As Worksheet
    Dim einzelZelle As Range
    Set Quelltabelle = Worksheets("Tabelle1")
    Set FormulaRange = Quelltabelle.Range("A1,B3,C2,F17")
    Quelltabelle.Copy after:=Quelltabelle
    Set Zieltabelle = Worksheets(Quelltabelle.Index + 1)
    Zieltabelle.UsedRange.Value = Zieltabelle.UsedRange.Value
    For Each einzelZelle In FormulaRange.Cells
        Zieltabelle.Range(einzelZelle.Address).Formula = einzelZelle.Formula
    Next einzelZelle
End Sub


Viele Grüße
derHöpp
DerHoepp
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 9720
Registriert: 14. Mai 2013, 11:08


Zurück zu Excel Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast