Modifier code

Messages postés
9
Date d'inscription
mardi 10 mai 2016
Dernière intervention
1 juin 2016
-
Bonjour,

Je ne connais rien à Visual Basic et j'ai besoin de modifier un code pour ajouter une colonne dans une macro. J'ai un commentaire pour dire que c'est à ce niveau qu'il faut faire la modif mais moi je ne sais pas comment faire.
Afficher la suite 

Votre réponse

3 réponses

Messages postés
23628
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2018
0
Merci
Bonjour,

Oui... mais ...heuuuu...... SANS VOIR LE CODE EN QUESTION ...... IMPOSSIBLE DE TE REPONDRE !!!

Edit : Tu as mis une capture écran ... mais ici .. on COLLE directement le code sur le forum.

NB : Il faudrait également que tu précises ce que tu souhaites exactement faire.


Cordialement, 
Jordane                                                                 
Commenter la réponse de jordane45
Messages postés
9
Date d'inscription
mardi 10 mai 2016
Dernière intervention
1 juin 2016
0
Merci
Merci Jordane pour ta réponse .. j'ai mis une image du code .. je sais pas si tu n'arrives pas à la voir!
Voici tout le code:


''' <summary>
''' Example for exporting Excel data to an ENTERPRISE Synthesis Data Warehouse (SDW)
''' </summary>
''' <remarks>YOU MUST HAVE THE SAME bit-VERSION of Synthesis and Excel for this to work!
'''          If you are using the 64-Bit office you need the 64-Bit Version of Synthesis
'''          This code applies to enterprise repositories. (Not standard repositories)
''' </remarks>

''' <summary>
''' Provides the command button with a process
''' </summary>
''' <remarks>Provides a process for opening a specific repository</remarks>
Private Sub ProcessRDW_Click()
    'Dimension the RawDataSet variable
    Dim RDSet As New RawDataSet
    
    'Set a Name for the Extracted data set
    Dim DName As String
    DName = InputBox("Data set name?")
    If DName = "" Then
        MsgBox "Operation Canceled/Aborted"
        Exit Sub
    End If
    RDSet.ExtractedName = DName
    
    'This is Weibull data
    RDSet.ExtractedType = RawDataSetType_Weibull
    
    'Load Excel data from the spreadsheet into the RawDataSet
    Call PopulateDataSet(RDSet)
      
    'Declare a new repository connection class
    Dim MyRepository As New Repository
    
    frmWait.lblWait = "Connecting to Repository..."
    DoEvents
    
    'Modify variables below to connect to your enterprise database.
    Dim ServerName As String
    Dim DataBaseName As String
    ServerName = "CNFR009087\SQLEXPRESS"
    DataBaseName = "AlstomFiabilité"
    
    'Connect to the Synthesis repository
    Dim Success As Boolean
    Success = MyRepository.ConnectToSQLRepository(ServerName, DataBaseName)
    
    If Not Success Then MsgBox "Unable to connect the Database - " & ServerName & "/" & DataBaseName
        
    'Save the raw data to the Synthesis repository
    Success = MyRepository.DataWarehouse.SaveRawDataSet(RDSet)
    If Success Then
        frmWait.lblWait = "Sucess!"
        MsgBox "The data have been saved."
        DoEvents
    Else
        MsgBox "Unable to save data"
    End If
   
    'Disconnect the Synthesis repository
    Call MyRepository.DisconnectFromRepository
    Unload frmWait
End Sub


''' <summary>
''' Start loading Excel data into the RawDataSet object that will load into the repository
''' </summary>
''' <remarks>Helper Subroutine for ProcessRDW_Click</remarks>
Private Sub PopulateDataSet(ByRef rds As RawDataSet)
    'Form to tell the user what the progress is....
    frmWait.Show (False)
    frmWait.lblWait = "Reading Data..."
   
    'Get data from source (in this case excel)
    Dim maxRow As Integer
    maxRow = 3000
      
    'Read each row and add to the RawDataSet
    Dim rd As New RawData
    Dim i As Integer
    For i = 2 To maxRow
        Set rd = New RawData
        
        'Progress counter
        frmWait.lblWait = "Reading Row... " & Format(i) & " of " & Format(maxRow)
        DoEvents
        
        'Set desired values for the current data row
        rd.PartName = Sheet1.Cells(i, 1)
        rd.ParentPartID = Val(Sheet1.Cells(i, 2))
        rd.PartNumber = Sheet1.Cells(i, 3)
        rd.FailureMode = Sheet1.Cells(i, 4)
        rd.Chargeable = Val(Sheet1.Cells(i, 5))
        rd.StateFS = Sheet1.Cells(i, 6)
        rd.StateTime = Val(Sheet1.Cells(i, 7))
        
        'Add row to the data set
        Call rds.AddDataRow(rd)
    
        
    Next i
End Sub


EDIT : Ajout des balises de code
jordane45
Messages postés
23628
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2018
-
C'est mieux.
Par contre... tu n'as toujours pas expliqué EN DETAIL ce que tu souhaites faire....
Quand tu dis :

ajouter une colonne dans une macro

... tu veux dire "ajouter" une colonne au dataset ?
.. Cette colonne existe dans ta BDD ?
.. La donnée à utiliser se trouve dans quel colonne de ta feuille Excel ?


Car là .. il suffit de faire comme ces lignes la :
'Set desired values for the current data row
        rd.PartName = Sheet1.Cells(i, 1)
        rd.ParentPartID = Val(Sheet1.Cells(i, 2))
        rd.PartNumber = Sheet1.Cells(i, 3)
        rd.FailureMode = Sheet1.Cells(i, 4)
        rd.Chargeable = Val(Sheet1.Cells(i, 5))
        rd.StateFS = Sheet1.Cells(i, 6)
        rd.StateTime = Val(Sheet1.Cells(i, 7))


pour ajouter une donnée à ta bdd (en partant du principe que la colonne existe déjà dans la table )
par exemple, imaginons que tu veuilles remplir la colonne nommée "toto" dans ta BDD ...et que la donnée à prendre dans la feuille excel se trouve dans la douzième colonne... alors il te suffit de faire :
 rd.toto= Val(Sheet1.Cells(i, 12))
Sanaa.sah
Messages postés
9
Date d'inscription
mardi 10 mai 2016
Dernière intervention
1 juin 2016
-
En fait le fichier Excel est un exemple fourni par l'éditeur du logiciel (Reliasoft), c'est pour permettre de faire des importations de données directement au logiciel via une macro.
Sur le fichier Excel (L'exemple), il y a 8 colonnes et des données et je souhaite le personnaliser pour l'adapter à mon besoin. Comme tu as du le voir sur le code j'ai des colonnes (PartName, ParentPartId, FailureMode, ..) qui sont par défaut et je souhaite ajouter des colonnes qui correspondent à mon besoin.
Du coup, d'après ce que j'ai compris je dois appeler la méthode en mettant le nom de ma colonne.
'Add row to the data set
Call rds.AddDataRow(rd)

Chose que je n'ai pas su faire :(
Commenter la réponse de Sanaa.sah
Messages postés
1730
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
16 décembre 2018
0
Merci
bonjour
A l'endroit de ton commentaire sur le premier message tout en haut c'est pour ajouter une ligne et non une colonne !
vb95
Messages postés
1730
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
16 décembre 2018
> Sanaa.sah
Messages postés
9
Date d'inscription
mardi 10 mai 2016
Dernière intervention
1 juin 2016
-
Alors comment veux-tu que cela fonctionne ?
Sois logique tout de même !
jordane45
Messages postés
23628
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2018
> Sanaa.sah
Messages postés
9
Date d'inscription
mardi 10 mai 2016
Dernière intervention
1 juin 2016
-
Et ça rejoint ce que je t'avais marqué dans ma réponse....

pour ajouter une donnée à ta bdd (en partant du principe que la colonne existe déjà dans la table )


@vb95 hello ^^
Sanaa.sah
Messages postés
9
Date d'inscription
mardi 10 mai 2016
Dernière intervention
1 juin 2016
-
Je vous ai dit que comprenais rien à VB :p Merci pour vos réponses :D
jordane45
Messages postés
23628
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2018
> Sanaa.sah
Messages postés
9
Date d'inscription
mardi 10 mai 2016
Dernière intervention
1 juin 2016
-
Je vous ai dit que comprenais rien à VB

Oui.. mais ... heuuuuu ... la .... ça n'a pas de rapport avec le VB.......
Sanaa.sah
Messages postés
9
Date d'inscription
mardi 10 mai 2016
Dernière intervention
1 juin 2016
-
haha .. oui peut-être que c'est moi :D
Commenter la réponse de vb95

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.