Problème de FOR
Bonjour,
Je vous explique mon problème.
Je souhaite copier certaines cellules d'un classeur et les mettre dans des cellules précises d'un autre classeur.
Après avoir copié les cellules de la Ligne 1, le classeur 2 où a été copié les cellules se ferme en enregistrant.
Mais lorsque mon For s'incrémente, une erreur intervient.
Voici mon code :
Sub rangecopy()
Dim wkDest As Workbook
Dim Tablo
Dim Chemin As String, NomFichier As String
Set wkDest_1 = Application.Workbooks.Open("C:\Users\baptiste.moulin\Desktop\BS CABLE\Test\SIGNAL CABLE TEST SHEET.xlsx")
With ThisWorkbook.Sheets("MCC - INS - CABLES")
Num_Doc = .Range(.Cells(16, 4), .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, 4))
Tag = .Range(.Cells(16, 2), .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, 2))
Brins = .Range(.Cells(16, 6), .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, 6))
Section = .Range(.Cells(16, 7), .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, 7))
Typ_Cab = .Range(.Cells(16, 5), .Cells(.Cells(.Rows.Count, 5).End(xlUp).Row, 5))
End With
With wkDest_1.Sheets("Sheet1")
For i = LBound(Num_Doc, 1) To UBound(Num_Doc, 1)
For j = LBound(Num_Doc, 2) To UBound(Num_Doc, 2)
If Num_Doc(i, j) <> "" Then .Cells(2 + i, 7 + j) = Num_Doc(i, j)
If Tag(i, 2 - j) <> "" Then .Cells(4 + i, 1 + j) = Tag(i, j)
If Typ_Cab(i, j) <> "" Then .Cells(4 + i, 4 + j) = Typ_Cab(i, j)
If Brins(i, j) <> "" Then .Cells(4 + i, 7 + j) = Brins(i, j)
If Section(i, j) <> "" Then .Cells(4 + i, 8 + j) = Section(i, j)
NomFichier = "B10-PRC" & i & ".xlsx"
Chemin = "C:\Users\baptiste.moulin\Desktop\BS CABLE\Macro_Process\"
wkDest_1.SaveAs Chemin & NomFichier
Next j
Next i
End With
Une fois la première boucle réalisée ça n'écrase pas les données des cellules remplies précédemment.
Peut-être est-il possible d'imposer les cellules dans lesquelles on copie.
Merci de votre aide
Bonjour,
difficile de voir sans le fichier, notamment si ce sont des indices hors limite, voire négatifs
cela concerne quel for ? for i ou for j ?
dans ce genre de cas, comment à mettre des debug.print suivies des valeurs ad hoc et ouvre le débogueur avec Ctrl+G dans l'éditeur de macro
Bonjour, Salut Steelson !
Dès les premières lignes...
Mais tu sembles fâché avec les déclarations !
Et déjà, cette multiplication de tableaux à une colonne c'est un peu n'importe quoi !
LBound pour tous tes tableaux, c'est invariablement 1, il aurait donc mieux valu mettre 1 (car inutile de calculer ce qui est une constante fixe, et cela t'aurait peut-être aidé à réfléchir...
Il ne te reste plus qu'à aller trouver les cellules ciblées pour voir ce que tu fais réellement.
Pour ordre !
Tu fais fort !
Boucle imbriquée - hier à 16h09
Erreur d'exécution 9 - hier à 19h26
Problème de For - hier à 23h30
A quoi pensais-tu donc ? Il serait temps de réfléchir sur ton code et ta façon de le construire.