1 pièce(s) jointe(s)
VBA - Boucle qui copie et place des cellules
Bonjour, j'ai fait un programme qui teste un tableau dans une feuille et qui le recopie dans une autre en fonction du résultat voici mon code :
Code:
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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
| Option Explicit
Sub test()
Dim i As Integer
Dim j As Integer
j = 1
For i = 2 To 11
If Sheets("Feuil1").Range("C" & i) = "N/A" Then
i = i + 1
'Incrémente i de 1 si FC = "N/A"
End If
If Sheets("Feuil1").Range("B" & i) <> Sheets("Feuil1").Range("B" & i - 1) Then
Sheets("Feuil1").Range("B" & i).Copy Destination:=Sheets("Feuil2").Range("A" & j)
'Affiche le tittre si le titre précédent est différent
End If
If Sheets("Feuil1").Range("C" & i) <> "N/A" Then
j = j + 2
Sheets("Feuil1").Range("C" & i).Copy Destination:=Sheets("Feuil2").Range("B" & j)
'Affiche FC si elle n'est pas non applicable
Sheets("Feuil1").Range("A" & i).Copy Destination:=Sheets("Feuil2").Range("A" & j)
'Affiche ID si FC n'est pas non applicable
End If
If Sheets("Feuil1").Range("D" & i) = "NON" Then
j = j + 3
Sheets("Feuil1").Range("E" & i).Copy Destination:=Sheets("Feuil2").Range("A" & j)
Else
j = j + 3
Sheets("Feuil1").Range("D" & i).Copy Destination:=Sheets("Feuil2").Range("A" & j)
'Affiche le Seuil A ou S en fonction de leur valeur
End If
If Sheets("Feuil1").Range("F" & i) <> "NON" Then
j = j + 4
Sheets("Feuil1").Range("F" & i).Copy Destination:=Sheets("Feuil2").Range("A" & j)
'Affiche la NORME si il y en a une
End If
If Sheets("Feuil1").Range("G" & i) <> "NON" Then
j = j + 5
Sheets("Feuil1").Range("G" & i).Copy Destination:=Sheets("Feuil2").Range("A" & j)
'Affiche le SCHEMA si il y en a un
End If
Next i
End Sub |
Je joins aussi le fichier Excel pour comprendre plus facilement quel résultat je veux obtenir.
Dans un premier temps si la colonne "FC" = "N/A" le programme dois passer à l'incrémentation suivante, puis affiché le titre dans "Feuil2" si le titre de la ligne précédante dans "Feuil1" est différent ensuite affiché l'ID.
Ensuite il teste dans quel colonne il y a un seuil dans "feuil1" et le recopie dans "feuil2"
Enfin il affiche la Norme et le Schéma s’il y en a et la boucle reprend.
Il y a trois problèmes :
1) Dans la "feuil2" les informations sur superpose ou ne se place pas au bon endroit (sur la "feuil2" Jai remplit à la main ce qui doit normalement apparaitre)
2) Des colonnes où il y a "N/A" apparaissent
3) Dans le cas où il y a un schéma et pas de norme je n'arrive pas à faire en sorte que l'information sur le schéma vienne à la place de la norme
Si vous avez des idées je suis preneur. Merci d'avance ;)
PS : il n'y a pas la macro dans la PJ