Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

makro





Frage

ich bräuchte jetzt ein makro das einen wert (also Zahlen) von pp nach excel und umgekehrt transportiert. z.B.: im excel steht in spalte a1 der wert 5. den möcht ich jetzt nach pp auf folie 3 in einer textbox(als wert nicht als bild) und als extra makro: z.B.: im pp steht in einer textbox der 5. den möcht ich jetzt nach excel in spalte a1 (als wert nicht als bild) wäre schön wenn mir jemand z.B. coros helfen könnte vielen dank im voraus

Antwort 1 von coros

Hallo Helfer_001,

na immer noch mit Datentransfer zu Powerpoint beschäftigt? Nachfolgend ein Makro, das Dir den Wert aus Zelle A1 in eine bestimmte Powerpointpresentation in ein neues Textfeld in Folie 3 kopiert.

Option Explicit

Sub Tabelle_als_Text_in_Textfeld_()
Dim PowerPoint_Application As PowerPoint.Application
Set PowerPoint_Application = CreateObject("Powerpoint.Application")
With PowerPoint_Application
    .Visible = True
    .WindowState = ppWindowMinimized
    .Presentations.Open Filename:="D:\Von_Excel_nach_Powerpoint.ppt"
    .ActivePresentation.Slides(3).Select
    With .ActivePresentation.Slides(3).Shapes.AddTextbox(msoTextOrientationHorizontal, 175, 100, 400, 100).TextFrame
    .TextRange.Text = Range("A1")
    End With
End With
End Sub


Für das 2. Makro müsste man wissen, wie viele Textfelder sich in der Folie befinden und wenn es mehrere sind, wie das auszulesende Textfeld heißt oder welche Indexnummer es besitzt.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von helfer_001

danke für makro 1
und ja das bin ich schonwieder.

im pp ist eine überschrift
2 tabellen
und eine 3. wo das rein soll

Antwort 3 von coros

Hallo Helfer_001,

wo was rein soll? Du wolltest aus einem Textfeld einen Wert auslesen und denn dann zu Excel übertragen? Oder habe ich da etwas falsch verstanden.

Was steht denn in dem Textfeld in der Powerpointpräsentation.

Und denke daran, schreibe vernünftige Sätze und nicht wieder nur so einen Telegrammstil, sonst klinke ich mich gleich wieder aus diesem Beitrag aus. Denn so wie in dem Letzten, dass ich raten muss, was Du meinst, mache ich nicht noch einmal.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 4 von helfer_001

das 2. makro hat sich grad erledigt...
das 1. makro fonktioniert forersrt gut aber jetzt soll es aufeinmal (mein cheff ändert ständig seine meinung)statt in eine textbox in eine tabelle

die folie ist so aufgebaut:
1. überschrift (textbox)
2. tabelle
3. tabelle
4. tabelle in die, die Zahlen reingehöhren ab 2.spalte(der tabelle) und 2. zeile sollen die zahlen einsorteirt werden(es sind immer gleich viele)


zb
|irgend ein text | zahl | irgendein text |
|irgend ein text | zahl | irgendein text |
|irgend ein text | zahl | irgendein text |
|irgend ein text | zahl | irgendein text |

(der text steht schon drinn)
als zahlen nimm zb G1:G6

ich hoffe du verstehst jetzt was ich meine


PS: ich hab eigentlich keine ahnung wiso mein chef will das ich das mache, ich bin netzwerk-administrator

Antwort 5 von coros

Hallo Helfer_001,

also ich glaube, das was Du, bzw. Dein Chef vor hast, wird nicht funktionieren. Meines Wissens nach kann man nicht in einer Tabelle, die sich wie hier z.B. in einer Präsentation befindet, nur einen Teil der Daten austauschen.

Man könnte nur, die besagte Tabelle löschen und durch einen Neue, in der sich die Daten befinden, aus Excel heraus einfügen.

Aber eventuell hat ja jemand noch eine weitere Idee, wie man das machen kann, oder ob das was Du möchtest, eventuell doch realisierbar ist.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 6 von helfer_001

sonst ein makro in pp das die zahlen einsortiert...
das wär aber eigentlich sehr umständlich da man in sieben excel datein auf makro starten klicken muss um die diagramme (aus unserer 1. konversation) hineinzubekommen. das gleiche muss man mit den zahlen auch machen, und dann müsste man im pp ach noch makros ausführen...

Antwort 7 von helfer_001

oder kann man den taxt irgendwie zwischenspeichern?
oder sonst ein zweites gleiches diagramm über das erste exakt drüberlegen... geht das?

Antwort 8 von coros

Hallo Helfer,

warum soll das Diagramm denn über ein bereits vorhandenes gelegt werden und nicht erst das alte Löschen und dann das neue einfügen?

Code zum Drüberlegen würde folgendermaßewn aussehen.

Sub Diagramm_als_Bild_auf_vorhandene_Folie()
Dim PowerPoint_Application As PowerPoint.Application
Application.ScreenUpdating = False
ActiveSheet.ChartObjects(1).Chart.CopyPicture
Set PowerPoint_Application = CreateObject("Powerpoint.Application")
With PowerPoint_Application
    .Visible = True
    .WindowState = ppWindowMinimized
    .Presentations.Open Filename:="D:\Von_Excel_nach_Powerpoint.ppt"
    .ActivePresentation.Slides(6).Select
            With .ActiveWindow
            .View.Paste
            .Selection.ShapeRange.Left = 200
            .Selection.ShapeRange.Top = 200
            .Selection.ShapeRange.Width = 275
            .Selection.ShapeRange.Height = 200
        End With
End With
End Sub


Der Code der erst das Diagramm löscht sieht folgendermaßen aus:

Sub Diagramm_als_Bild_auf_vorhandene_Folie()
Dim PowerPoint_Application As PowerPoint.Application, iPic As Integer
Application.ScreenUpdating = False
ActiveSheet.ChartObjects(1).Chart.CopyPicture
Set PowerPoint_Application = CreateObject("Powerpoint.Application")
With PowerPoint_Application
    .Visible = True
    .WindowState = ppWindowMinimized
    .Presentations.Open Filename:="D:\Von_Excel_nach_Powerpoint.ppt"
    .ActivePresentation.Slides(6).Select
    For iShape = 1 To .ActiveWindow.Selection.SlideRange.Shapes.Count
        If Left(.ActiveWindow.Selection.SlideRange.Shapes(iShape).Name, 7) = "Picture" Then
            .ActiveWindow.Selection.SlideRange.Shapes(.ActiveWindow.Selection.SlideRange.Shapes(iShape).Name).Delete
        End If
    Next
        With .ActiveWindow
            .View.Paste
            .Selection.ShapeRange.Left = 200
            .Selection.ShapeRange.Top = 200
            .Selection.ShapeRange.Width = 275
            .Selection.ShapeRange.Height = 200
        End With
End With
End Sub


Es kann sein, dass Du in der Zeile

        If Left(.ActiveWindow.Selection.SlideRange.Shapes(iShape).Name, 7) = "Picture" Then


den kompletten Namen des Diagrammbildes angeben musst.

Wenn es nicht das richtige ist, melde Dich bitte wieder. Eine Antwort kann aber ein bisschen dauern, denn ich muss jetzt weg, habe einen Termin.


MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 9 von helfer_001

oh, ich meinte nicht diagramm sondern tabelle sry

Antwort 10 von helfer_001

Option Explicit 

Sub Tabelle_als_Text_in_Textfeld_() 
Dim PowerPoint_Application As PowerPoint.Application 
Set PowerPoint_Application = CreateObject("Powerpoint.Application") 
With PowerPoint_Application 
.Visible = True 
.WindowState = ppWindowMinimized 
.Presentations.Open Filename:="D:\Von_Excel_nach_Powerpoint.ppt" 
.ActivePresentation.Slides(3).Select 
With .ActivePresentation.Slides(3).Shapes.AddTextbox(msoTextOrientationHorizontal, 175, 100, 400, 100).TextFrame 
.TextRange.Text = Range("A1") 
End With 
End With 
End Sub


bei der textbox hab ich vor der zahl immer ein aufzählungszeichen.
kannst du das bitte ändern?

Antwort 11 von helfer_001

das andere ist derzeit unwichtig

Antwort 12 von coros

Hallo helfer_001

was steht denn dort für ein Aufzählungszeichen. A, B,C oder 1, 2, 3 oder oder oder...

Eventuell kannst Du ja auch mal ein Beispiel geben, was in der Zelle steht und was dann in dem Textfeld stehen soll.

Wobei ich da wenig Hoffnung habe, dass Du es mal schaffst, einen vernünftigen Text zu schreiben, aus dem man schlau wird. Ich finde es außerdem schon bewundernswert, wie Du die Bitten eines Helfers, mal eine Frage in vernünfzigen Sätzen zu verfassen, ignorierst.

Aber vielleicht sollte ich das in Antwort 3, letzter Absatz, angedeutete mal langsam wahr machen, sprich mich ausklinken. Denn ich bin es langsam leid, auf jede Frage von Dir erst mal eine Gegenfrage stellen zu müssen, weil Du nicht mal eindeutig alle Infos rüberbringst, die man für eine Hilfe benötigt.


MfG,
ein langsam genervter Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 13 von helfer_001

er macht ein häckhen, aber das ist doch völlig egal!
du musst doch nur eine zeile schreiben die die funktion hat ein zeichen zu löschen...

ich weiß echt nicht was du eigentlich willst.

Antwort 14 von helfer_001

wenn das fonktioniert, hab ich das gemeint:

ActiveWindow.Selection.ShapeRange.TextFrame.TextRange.Select
ActiveWindow.Selection.ShapeRange.TextFrame.TextRange.Characters(Start:=60, Length:=1).Select
ActiveWindow.Selection.TextRange.Text = ""


Antwort 15 von helfer_001

aber ich weiß nicht ob das aufzählungszeichen löscht deswegen werd ich es ausprobieren

Antwort 16 von helfer_001

Option Explicit

Sub Tabelle_als_Text_in_Textfeld_()
Dim PowerPoint_Application As PowerPoint.Application
Set PowerPoint_Application = CreateObject("Powerpoint.Application")
With PowerPoint_Application
.Visible = True
.WindowState = ppWindowMinimized
.Presentations.Open Filename:="C:\Documents and Settings\SantnerC\Desktop\Defect Density master.ppt"
.ActivePresentation.Slides(8).Select
With .ActivePresentation.Slides(8).Shapes.AddTextbox(msoTextOrientationHorizontal, 210, 350, 100, 100).TextFrame
.TextRange.Text = Range("AG2")
End With
With .Font
.NameAscii = "Arial"
.Size = 9
.Bold = msoFalse
.Italic = msoFalse
.Underline = msoFalse
.Shadow = msoFalse
.Emboss = msoFalse
.BaselineOffset = 0
.AutoRotateNumbers = msoFalse
.Color.SchemeColor = ppForeground
End With
ActiveWindow.Selection.ShapeRange.TextFrame.TextRange.Paragraphs(Start:=1, Length:=1).ParagraphFormat.Bullet.Visible = msoFalse
End With
End Sub


siehst du da einen fehler?

Antwort 17 von Arno_Nym

Zitat:
er macht ein häckhen, aber das ist doch völlig egal!

Egal ist nur Käse - der stinkt von allen Seiten ;o)
Zitat:
du musst doch nur eine zeile schreiben die die funktion hat ein zeichen zu löschen...

Ich hoffe, coros nimmt deine "Anweisungen" gelassen hin ;o)
Zitat:
ich weiß echt nicht was du eigentlich willst.

Wenn das mal die potentiellen Helfer nicht vollends verschreckt ;o)

Zum Problem:
Wahrscheinlich ist in der betreffenden Präsentation das Standardformat für Textfelder auf Aufzählungszeichen eingestellt.

Also zuerst Aufzählungszeichen entfernen (Rechtklick aufs Textfeld) und dann wieder Rechtsklick und "Als Standard für Autoform festlegen".


Arno

Antwort 18 von helfer_001

danke das hat fonktioniert
die masterfolie hab ich ganz übersehen....

Antwort 19 von helfer_001

also ist die frage beantwortet.....
ich bedanke mich nochmal bei allen die mir geholfen haben




---------------------------------------closed---------------------------------------

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: