IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Convertir macro VBA en VB.net 2010.


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Octobre 2018
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2018
    Messages : 23
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    Bonjour

    Microsoft.Interop.Office et Microsoft.Interop.Excel sont tes 2 amis pour creer un executable (.exe) en vb.net qui
    1/demarre Excel
    2/ ouvre ton classeur
    3/ l'agremenre d'un usercontrol ou un form
    4/ execute ta macro reecrite en vb.net (pas de difference notable avec VBA cote syntaxe ...
    Pour cela lire et s'entrainer avec les FAQS Du forum sur VB.Net et l'Interop ...et revenir sur ce forum quand ca coince avec le code vb.net !!!
    bon code ...

  3. #3
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Octobre 2018
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2018
    Messages : 23
    Par défaut
    Bonjour,

    Merci pour ta réponse mais je n'ai pas bien compris ce que tu voulais dire malgré les étapes. J'ai regardé un peu sur internet comment utiliser COM Interop mais je n'arrive pas à adapter mon script à cela.

    Merci de ta réponse !

  4. #4
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Voici ce qui illustre très partiellement la description que tu as reçue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Imports Excel = Microsoft.Office.Interop.Excel
     
    Public Class Formidable
     
        Dim XLSAPP As Excel.Application = Nothing
     
        'La feuille Excel n'est pas ouverte
        Private Sub BExcel_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BExcel.Click
            XLSAPP = New Excel.Application
            XLSAPP.Visible = True
            XLSAPP.Workbooks.Open("D:\Tmp\ProbExcel\Test.xls")  'ouvir le fichier XLS
     
            ' Il est possible de programmer en VB ce qu'on ferait en Macro
            XLSAPP.Range("C4").Select()                 'sélectionner une cellule
            XLSAPP.ActiveCell.FormulaR1C1 = "127"   'y placer la valeur 127
     
            'Il est aussi possible de lancer une macro du fichier XLS
            XLSAPP.Run("MaMacro") 'exécuter la macro MaMacro
    ' .......................
    ' .......................
    J'espère que ceci t'aidera ...

Discussions similaires

  1. Executer une macro vba depuis un projet vb.net ?
    Par spookyz dans le forum VB.NET
    Réponses: 3
    Dernier message: 18/12/2010, 10h00
  2. [VxiR2] Macro VBA pour convertir le rapport en CSV
    Par BipBipBO dans le forum Deski
    Réponses: 9
    Dernier message: 22/06/2010, 14h05
  3. [AC-2007] Convertir Macros Access 2007 en VBA
    Par accessdeb dans le forum Access
    Réponses: 0
    Dernier message: 30/08/2007, 13h00
  4. [Macros]Convertir macros en VBA
    Par Melhiril dans le forum IHM
    Réponses: 11
    Dernier message: 26/04/2007, 14h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo