Bonjour

Voici le code que j'ai écrit pour copier le contenu de la feuille 2 dans la feuille 1 en colonne.

J'ai un soucis car la feuille 2 n'est pas reconnue. Le code s'exécute uniquement lorsque les cellules à copier sont dans la feuille 1.

Je veux récupérer les données de la feuille 2 pour une autre macro.

Pouvez vous m'aider.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 
Sub CopierColler
 
'''''''				Variables
''''''' Ouverture d'un fichier 
  Dim oDesktop As Object , oDoc As Object , oText As Object , oCursor, oTable As Object
  Dim Fichier As String , Resultat As String, Wb As Object
  Dim Args() , Opt() 
''''''' Sélection de la plage
  Dim Feuille,Feuille2 As Object, PlageCellules As Object
  Dim Plages As Object, oEnum As Object, Cellule, Cellule1 As Object
  Dim NumLigne,NumColonne As Integer , NimColonne, X, Y As Integer
  Dim  Lignes,  oCurseur As Object
 
  dim CelluleCopie as object
 
 
 'Définit une feuille nommée "Feuille2" dans le classeur
  Feuille = CurrentComponent'.Sheets.getByName("Feuille2") 'C'est ici que la feuille 2 n'est pas considérée
  CelluleActive = ThisComponent.getCurrentSelection
 
  'Définit la plage de cellules
  Colonne = ThisComponent.Sheets("Feuille2").rows(CelluleActive.CellAddress.Row)
 
  Plages = ThisComponent.createInstance("com.sun.star.sheet.SheetCellRanges") 
  Plages.insertByName("", Colonne)
  oEnum = Plages.Cells.CreateEnumeration 
 
'''''''a. Bouclage des Cellules de la plage (les vides ne sont pas prises en compte)
    'Boucle sur la plage de cellules à copier
    oCurseur = ThisComponent.Sheets(0).createCursor 
    oCurseur.gotoEndOfUsedArea( False )
    While oEnum.hasMoreElements 
    'Nota:
    'Ne renvoie rien si la cellule est vide
    Cellule = oEnum.NextElement
    Resultat = Resultat & Cellule.String & Chr(10) 
     Y = Y +1
     Feuille2 = ThisComponent.Sheets.getByName("Feuille1") 
     CelluleCopie = Feuille.getCellByPosition(Y-,oCurseur.RangeAddress.EndRow +1  )
     CelluleCopie.String = Cellule.String
 
    Wend

Merci d'avance pour votre aide