barca-powa
XLDnaute Nouveau
Bonjour!
J'ai un probleme avec le codage d'une macro.
J'ai pour l'instant trouvé comment importer uniquement un fichier .csv, effectuer quelques opération dessus, comparer 2 colonnes et affichier si ces colonnes sont identiques.
Maintenant je bloc sur comment faire pour que les operation ce face sur 30 ligne (de la 10 a 40) puis reprenne automatiquement sur une feuille suivante pour laisser de la place a la mise en page pour par la suite etre imprimé.
Et ma 2nd requete, si tout est OK je souhaite colorier en vert plusieur case pour signaler que sur cette page c'est OK ou en rouge si sur la page c'est NOK.
Voici mon code pour l'instant.
Je fais un bts iris donc le VB et ses méthodes de codage ne me sont pas famillaire... .
Merci de votre aide!
J'ai un probleme avec le codage d'une macro.
J'ai pour l'instant trouvé comment importer uniquement un fichier .csv, effectuer quelques opération dessus, comparer 2 colonnes et affichier si ces colonnes sont identiques.
Maintenant je bloc sur comment faire pour que les operation ce face sur 30 ligne (de la 10 a 40) puis reprenne automatiquement sur une feuille suivante pour laisser de la place a la mise en page pour par la suite etre imprimé.
Et ma 2nd requete, si tout est OK je souhaite colorier en vert plusieur case pour signaler que sur cette page c'est OK ou en rouge si sur la page c'est NOK.
Voici mon code pour l'instant.
Code:
Option Explicit
Sub Csv()
Dim Fichier As Variant
ChDir ThisWorkbook.Path
Fichier = Application.GetOpenFilename("Fichier CSV (*.csv), *.csv")
If Fichier <> False Then
LireVerifier Fichier
End If
End Sub
Function LireVerifier(ByVal NomFichier As String)
Dim Chaine As String
Dim Ar() As String
Dim i As Long
Dim iRow As Long, iCol As Long
Dim NumFichier As Integer
Dim Separateur As String * 1
Separateur = ";"
Cells.Clear
Application.ScreenUpdating = False
NumFichier = FreeFile
iRow = 10
Open NomFichier For Input As #NumFichier
Do While Not EOF(NumFichier)
iCol = 1
Line Input #NumFichier, Chaine
Ar = Split(Chaine, Separateur)
For i = LBound(Ar) To UBound(Ar)
Ar(i) = Replace(Ar(i), "M-", "")
Cells(iRow, iCol) = Ar(i)
iCol = iCol + 1
Next
Select Case Cells(iRow, 1)
Case Is = Cells(iRow, 2): Cells(iRow, 3) = "OK"
Case Else: Cells(iRow, 3) = "NOK"
End Select
Select Case Cells(iRow, 1)
Case Is = Cells(iRow, 2): Cells(iRow, 3).Value = "OK"
Cells(iRow, 3).Font.ColorIndex = 4
Cells(iRow, 3).Font.Bold = True
Case Else: Cells(iRow, 3) = "NOK"
Cells(iRow, 3).Font.ColorIndex = 3
Cells(iRow, 3).Font.Bold = True
End Select
iRow = iRow + 1
Loop
Close #NumFichier
Application.ScreenUpdating = True
End Function
Je fais un bts iris donc le VB et ses méthodes de codage ne me sont pas famillaire... .
Merci de votre aide!