Convertir macro VBA en VB.net 2010.
Bien le bonjour,
Je cherche depuis quelques temps à faire une application permettant de vérifier un tableau excel à l'aide de conditions. Exemple, si la case désignation contient + de 50 caractères, alors la surligner en rouge, puis créer un fichier texte avec la ligne fausse.
J'ai réussis à faire ce code sur VBA excel mais le mieux serait d'avoir une application en .exe pour me permettre d’exécuter le programme de vérification le plus simplement possible. Cependant, je n'ai que de très faible connaissance en VB.net.
Si quelqu'un saurait me montrer comment faire avec une partie du code convertit en VBA, cela me servirait grandement !
Au passage, j'ai déjà vu de nombreux tutos, de nombreux post anglais et français à ce sujet, mais jamais aucun n'était vraiment clair et n’expliquai ce que je cherchais.
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
|
Option Explicit
Dim FL1 As Worksheet, NoCol As Integer
Dim NoLig As Long, Var As Variant
Dim mess As String
Private Sub CommandButton1_Click()
Columns("B:L").Font.ColorIndex = xlAutomatic 'La couleur revient par défaut.
bouclecolonneB
bouclecolonneC
bouclecolonneD
bouclecolonneE
bouclecolonneF
bouclecolonneG
bouclecolonneH
bouclecolonneI
bouclecolonneJ
bouclecolonneK
bouclecolonneL
End Sub
Sub bouclecolonneB()
Dim FL1, x
Set FL1 = Worksheets("Feuil1")
NoCol = 2 'lecture de la colonne B
For NoLig = 1 To Split(FL1.UsedRange.Address, "$")(4)
Var = FL1.Cells(NoLig, NoCol)
If Len(Var) > 50 Then
Rows(NoLig & ":" & NoLig).Font.Color = RGB(255, 0, 0) 'rouge
mess = mess & vbCrLf & "La colonne désignation est éronnée. " & NoLig
End If
Next
'creation de ton fichier rapport ici avec open for input par exemple
x = FreeFile
Open Environ("userprofile") & "\DeskTop\rapport d'erreur.txt" For Output As #x: Print #x, mess: Close #x
Set FL1 = Nothing
End Sub
Sub bouclecolonneC()
Dim FL1, x
Set FL1 = Worksheets("Feuil1")
NoCol = 3 'lecture de la colonne C
For NoLig = 1 To Split(FL1.UsedRange.Address, "$")(4)
Var = FL1.Cells(NoLig, NoCol)
If Var = "" Or IsNumeric(Var) = False Then
Rows(NoLig & ":" & NoLig).Font.Color = RGB(255, 0, 0) 'rouge
mess = mess & vbCrLf & "La colonne Prix 1 est éronnée. " & NoLig
End If
Next
x = FreeFile
Open Environ("userprofile") & "\DeskTop\rapport d'erreur.txt" For Output As #x: Print #x, mess: Close #x
Set FL1 = Nothing
End Sub |