XL 2016 Copie tableau excel à Powerpoint case par case VBA

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

BoudinTozz

XLDnaute Nouveau
Bonjour à tous.

Tout d'abord merci de me lire, j'ai longtemps cherché la solution à mon problème sur le forum mais je n'ai rien trouvé qui fonctionne...

J'ai un code VBA qui doit me servir à recopier certaines cases d'un tableau Excel dans des tableaux associés dans Powerpoint. Le problème est que cette copie doit se faire case par case et que certaines contiennent des liens hypertexte que je souhaite garder. J'imagine que c'est ce qui pose problème dans mon code.

Ci dessous le code complet, mais la partie qui nous intéresse se trouve à la ligne 41.


Merci d'avance pour votre temps.


Ps: J'ai testé toutes les conditions qui entourent la copie, elles fonctionnent correctement, je pense que le problème peut-être résolu sans s'intéresser à ça

VB:
Public Sub MisaAJour()
    ' déclaration
    Dim objSld As Slide
    Dim wb As Excel.Workbook
    Dim source As Excel.Worksheet
    Dim tabname As String
    Dim xlApp As Object
    Dim l As Integer
    Dim k As Integer
    Dim m As Integer
  
    Set xlApp = CreateObject("excel.application")

    xlApp.Workbooks.Open ("c:\chemindudoc.xlsm")
    Set wb = xlApp.ActiveWorkbook
    xlApp.Visible = True
    Set source = wb.Worksheets("NomduSheet")
  
      
    For k = 7 To 18
  
      Set objSld = ActivePresentation.Slides(k) 'affectations
    
      tabname = ("Table" & k)
  
          For l = 1 To 2    ' pour boucler sur les colonnes
            m = 2
            source.Range("F6").Activate
            While ActiveCell.Value <> k ' atteint la bonne catégorie
                ActiveCell.Offset(1, 0).Select
            Wend
            While (ActiveCell.Value = k Or ActiveCell.Value = "") ' pour boucler sur les lignes jusqu'a la fin de la catégorie
              
                If source.Cells(ActiveCell.Row, 9) = "Yes" Then 'Si la case "In portal" vaut "yes"
                  
                    If objSld.Shapes(tabname).Table.Rows.Count = (m) Then 'ajoute une ligne si besoin
                        objSld.Shapes(tabname).Table.Rows.Add
                    End If
                  
                    source.Cells(ActiveCell.Row, l + 3).Select
                    Selection.Copy
                    objSld.Shapes(tabname).Table.Cell(m, l).PasteSpecial ppPasteOLEObject

                  
                    m = m + 1
                End If
                ActiveCell.Offset(1, 0).Select
            Wend
          Next l
    Next k
  
    wb.Close False
    MsgBox ("Success")
End Sub
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 VBA sur outlook
Réponses
14
Affichages
997
Réponses
1
Affichages
662
Retour