Probleme de Code ' L'indice n'appartient pas a la séléction '

gopo

XLDnaute Junior
Bonjour a toutes et a tous.

Voila, j'ai un soucis dans mon code :

- ce qu'il y a de souligné en premier permet de selection la feuille du classeur actif ou je veux copié mes celulles.

- ce qu'il y a de souligné en deuxieme permet d'ouvrir la classeur souhaité, ou nous collerons nos celulle copié précédement.

Je fais ceci en premier temps dans ma premiere condition : le classeur sera ouvert etc... puis vien le problème vien quand nous arrivons dans ma deuxieme boucle il faut que je selectionne la feuille de source & le classeur de destination, je voulais utiliser la ligne de code que la premiere fois mais quand je le fait cela me donne une erreur " l'indice n'appartien pas ala selection "... quand je ne met pas ces deux ligne de code ( selection feuille et ouverture classeur ) tout ce passe bien AUCUN BUG MAIS -> cela efface les celulles ou devrait y avoir la selection copié .... que devrai je mettre pour selectioné la feuille & le classeur sans faire bugué tout ca ?

MON CODE ( désolé si c'est sale ! ) :

Code:
Public Sub CommandButton1_Click()
Dim Variable1 As String
Dim Variable2 As String


Dim i As Integer
Dim j As Integer
Dim h As Integer

i = 9
       For i = 9 To 846 Step 27
         If Cells(i, 2) = "753220 - PARIS KELLER ACP" Then
                For j = 5 To 26 Step 1
                    
                 If Cells(i + 1, j) = "Janvier" Then
                     ActiveWorkbook.Sheets("Détail ACP").Select
                     
                     Variable1 = ActiveSheet.Cells(i + 3, j).Value
                     Variable2 = ActiveSheet.Cells(i + 8, j).Value
                     
                     
                     Workbooks.Open ActiveWorkbook.Path & "\TBM ACP.xls"
                
                     ActiveWorkbook.Sheets("Paris Keller").Cells(10, 7).Value = Variable1
                     ActiveWorkbook.Sheets("Paris Keller").Cells(11, 7).Value = Variable2
                      
                     ActiveWorkbook.Sheets("Paris Keller").Select
                   
                          Exit For
                        End If
                      Next
                Exit For
              End If
          Next
   
 For i = 9 To 846 Step 27
         If Cells(i, 2) = "750670 - PARIS BERCY EXPO ACP" Then
                For j = 5 To 26 Step 1
                    
                 If Cells(i + 1, j) = "Janvier" Then
                   ActiveWorkbook.Sheets("Détail ACP").Select
                     
                          Variable1 = ActiveSheet.Cells(i + 3, j).Value
                          Variable2 = ActiveSheet.Cells(i + 8, j).Value
                     
 '             Workbooks.Open ActiveWorkbook.Path & "\TBM ACP.xls"
                     
                          ActiveWorkbook.Sheets("PARIS BERCY").Cells(10, 7).Value = Variable1
                          ActiveWorkbook.Sheets("PARIS BERCY").Cells(11, 7).Value = Variable2
                     
                          ActiveWorkbook.Sheets("PARIS BERCY").Select
                        Exit For
                      End If
                 Next
            Exit For
   End If
Next

End Sub
 

skoobi

XLDnaute Barbatruc
Re : Probleme de Code ' L'indice n'appartient pas a la séléction '

Bonjour,

Pour basculer d'un classeur à un autre ou d'une feuille à une autre, utilise With.... End With.
Sous réserve d'avoir compris, à tester:

Code:
Public Sub CommandButton1_Click()
  Dim Variable1 As String
  Dim Variable2 As String
  Dim Dest As Workbook
  Dim i As Integer
  Dim j As Integer
  Dim h As Integer
  i = 9
  For i = 9 To 846 Step 27
    If Cells(i, 2) = "753220 - PARIS KELLER ACP" Then
      For j = 5 To 26 Step 1
        If Cells(i + 1, j) = "Janvier" Then
          With ThisWorkbook.Sheets("Détail ACP")
            '          ActiveWorkbook.Sheets("Détail ACP").Select
            Variable1 = .Cells(i + 3, j).Value
            Variable2 = .Cells(i + 8, j).Value
          End With
          Set Dest = Workbooks.Open(ActiveWorkbook.Path & "\TBM ACP.xls")
          '          Workbooks.Open ActiveWorkbook.Path & "\TBM ACP.xls"
          With Dest.Sheets("Paris Keller")
            .Cells(10, 7).Value = Variable1
            .Cells(11, 7).Value = Variable2
            '          ActiveWorkbook.Sheets("Paris Keller").Select
          End With
          Exit For
        End If
      Next
      Exit For
    End If
  Next
  For i = 9 To 846 Step 27
    If Cells(i, 2) = "750670 - PARIS BERCY EXPO ACP" Then
      For j = 5 To 26 Step 1
        If Cells(i + 1, j) = "Janvier" Then
          '          ActiveWorkbook.Sheets("Détail ACP").Select
          With ThisWorkbook.Sheets("Détail ACP")
            Variable1 = .Cells(i + 3, j).Value
            Variable2 = .Cells(i + 8, j).Value
          End With
          Set Dest = Workbooks.Open(ActiveWorkbook.Path & "\TBM ACP.xls")
          '             Workbooks.Open ActiveWorkbook.Path & "\TBM ACP.xls"
          With Dest.Sheets("Paris Keller")
            .Cells(10, 7).Value = Variable1
            .Cells(11, 7).Value = Variable2
'            .Sheets("PARIS BERCY").Select
          End With
          Exit For
        End If
      Next
      Exit For
    End If
  Next
End Sub
 
Dernière édition:

gopo

XLDnaute Junior
Re : Probleme de Code ' L'indice n'appartient pas a la séléction '

J'ai testé,

Probleme ( toujours le même ) : Set Dest = Workbooks.Open(ActiveWorkbook.Path & "\TBM ACP.xls")

Il veut me réouvrir mon classeur, qui es déja ouvert au "For" d'avant.. comment je peux faire ? car il ne connaitra pas la destination si je ne le met pas, est ce que : Set Dest = Workbooks(ActiveWorkbook.Path & "\TBM ACP.xls") peut marcher ? ou quelque chose comme ca... ? ( il faut qu'il connaisse la destination sans le réouvrir, au pire je peux ouvrir le classeur au préalable et travaillé dessus juste en donnant la destination, sans l'ouvrir )
 
Dernière édition:

gopo

XLDnaute Junior
Re : Probleme de Code ' L'indice n'appartient pas a la séléction '

Désolé pour les réponses enchainé, mais ca m'a l'air plus claire pour que vous me corrigiez et que vous suiviez mes étapes.

J'ai fait un teste, j'ai utilisé ton code :

1er boucle il va m'ouvrir ma destination ou ca collera mes info copié
ensuite j'ai fermé le classeur.
2eme boucle ca marche niquel vu que j'ai fermé le classeur, il le ré-ouvre et colle les info.

Donc en résumé s'il y aurai une ligne de code qui permeterrai de donné la destination du classeur sans l'ouvrir je pense que ca résolurai le probleme merci a toi de m'aider !
 

Discussions similaires

Statistiques des forums

Discussions
312 321
Messages
2 087 237
Membres
103 497
dernier inscrit
JP9231