Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

pb de copie en multi-workbooks:

  • Initiateur de la discussion Initiateur de la discussion Alex
  • Date de début Date de début

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 !

A

Alex

Guest
Salut, Forum !
je n'ais pas reussit à copier une plage de cellules (fonction de i) provenant d'un autre classeur que le classeur actif (Thisworkbook)

'Programme Teste
'Classeur actif: Classeur1
'Classeur ou l'on veut copier la plage de cellules: Classeur2
'On écrit dans le classeur1:

Private Sub CommandButton1_Click()
Dim i As Integer
Dim j As Integer
Dim MyRangeAstuce As String
i = 1
j = 1

Workbooks(Classeur1).Worksheets(1).Activate
Worksheets(1).Range(Cells(1, i), Cells(57, i)).Copy 'Ca Marche (1)

Workbooks(Classeur2).Worksheets(1).Activate
Worksheets(1).Range(Cells(1, i), Cells(57, i)).Copy 'Ca plante (2)

Workbooks(Classeur2).Worksheets(1).Activate
Worksheets(1).Range("A1:C3").Copy 'Ca Marche (3)

MyRangeAstuce=CodeCellule(i,1) + ":" + CodeCellule(j,57)
Workbooks(Classeur2).Worksheets(1).Activate
Worksheets(1).Range(MyRangeAstuce).Copy 'Ca Marche (4)

End Sub


'J'ais fais une fonction qui me renvoie un string ex ("B12") en fonction de la ligne et de la colonne que je lui envoie:

Public Function CodeCellule(Colone As Integer, ligne As Integer) As String

Dim PosCaractére1 As Integer
Dim PosCaractére2 As Integer
Dim TableauAlphabet
TableauAlphabet = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z")

PosCaractére1 = Int(Colone / 26)

While Colone > 0
PosCaractére2 = Colone
Colone = Colone - 26
Wend

If PosCaractére1 = 0 Then
CodeCellule = TableauAlphabet(PosCaractére2 - 1) + CStr(ligne)
Else
CodeCellule = TableauAlphabet(PosCaractére1 - 1) + TableauAlphabet(PosCaractére2 - 1) + CStr(ligne)
End If

End Function


Il doit y avoir une autre facon de procéder sans passer par une function.

Aide Moi Forum !

Merci, Tchao.
 
- 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

Réponses
5
Affichages
704
Réponses
4
Affichages
580
Réponses
1
Affichages
265
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…