Copie de données cellules par cellules avec des modifs

Résolu/Fermé
suiss90 Messages postés 1 Date d'inscription mercredi 1 avril 2015 Statut Membre Dernière intervention 1 avril 2015 - 1 avril 2015 à 16:50
 suiss90 - 3 avril 2015 à 14:11
Bonjour à tous,
j'essaye actuellement de réalisé un programme vba qui va permettre de copier 53 fois, cellules par cellules dans une nouvelle feuille nommée DRV_IN_1 des données qui se situe dans ma feuille DRV_IN. La "feuil2" est une feuille dans laquelle se trouve les modification auxquelles je dois faire référence. Les variables i, k, et j représentent respectivement le nombre de copie, le nombre ligne, le nombre de colonne. Mon problème est que je dois faire des modifications quand je copie par rapport à la feuille de base DRV_IN. Les modifs sont situés à j=1, j=3, j=5 et à j=25. Elles marchent toutes sauf à j=3. Dans cette colonne je souhaite faire une modif et à partir d'une certaine cellule réaliser la deuxième modif (En commentaire dans mon programme). Le résulat ne réalise que la 1ière modif mais en débogant pas à pas on voit que la deuxiéme modif s'effectue correctement mais elle est ensuite remodifié par la 1ière qui réecrit par dessus. Cela doit être à cause d'un boucle ou je sais pas....
C'est pour cela que je fait appel à vous. J'espère que vous comprenez mon soucis et que vous pourrez m'aider


Voici mon Programme :

Option Explicit

Sub copy1()

Dim Nb_ligne As Integer
Dim Nb_Col As Integer
Dim Nb_Copy As Integer
Dim i As Integer
Dim k As Integer
Dim j As Integer
Dim Length As Integer
Dim Length2 As Integer
Dim Saut_var As Integer
Dim Saut_var2 As Integer



Nb_ligne = 37
Nb_Copy = 53
Nb_Col = 26

Saut_var = 10
Saut_var2 = 17


For i = 1 To Nb_Copy

For k = 3 To Nb_ligne + 2
For j = 1 To Nb_Col
If j = 1 Then
ThisWorkbook.Sheets("DRV_IN_1").Cells(k - 1 + (i - 1) * (Nb_ligne), j) = "I" & Format(k - 3 + (i - 1) * (Nb_ligne + Saut_var), "00000")
ElseIf j = 3 Then
ThisWorkbook.Sheets("DRV_IN_1").Cells(k - 1 + (i - 1) * (Nb_ligne), j) = ThisWorkbook.Sheets("Feuil2").Cells(i, 1) & "_" & ThisWorkbook.Sheets("Feuil2").Cells(i, 3)

'ThisWorkbook.Sheets("DRV_IN_1").Cells(k - 1 + Nb_ligne - Saut_var2 + (i - 1) * (Saut_var2), j) = ThisWorkbook.Sheets("Feuil2").Cells(i, 1)

ElseIf j = 5 Then
Length = Len(ThisWorkbook.Sheets("DRV_IN").Cells(k, 5))
If Length = 0 Then Length = 30
ThisWorkbook.Sheets("DRV_IN_1").Cells(k - 1 + (i - 1) * (Nb_ligne), j) = Right(ThisWorkbook.Sheets("Feuil2").Cells(i, 2), 6) & Mid(ThisWorkbook.Sheets("DRV_IN").Cells(k, 5), 8, Length + 30)
ElseIf j = 25 Then
ThisWorkbook.Sheets("DRV_IN_1").Cells(k - 1 + (i - 1) * (Nb_ligne), j) = ThisWorkbook.Sheets("Feuil2").Cells(i, 2)
Else
ThisWorkbook.Sheets("DRV_IN_1").Cells(k - 1 + (i - 1) * (Nb_ligne), j) = ThisWorkbook.Sheets("DRV_IN").Cells(k, j)
End If
Next j

Next k

Next i

End Sub
A voir également:

1 réponse

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
3 avril 2015 à 12:01
Bonjour,
demande incompréhensible...
0
c'est vrai dsl mais de toute façon j'ai réussi à résoudre mon problème. Merci bcp comme même.
0