Piloter un logiciel via VBA

Ci-joint le document et l'userform utilsé!

Bonjour,

Il y a beaucoup plus simple !

'Procédure pour exporter via mon formulaire
Private Sub CommandButtonCarte00_Click()

Dim NumLigne As Integer
Dim NbLigne As Integer

NumLigne = Me.ListVACATAIRES.ListIndex
NbLigne = Me.ListVACATAIRES.ListCount

exporter "Sans titre - Bloc-notes", Me.ListVACATAIRES.Column(2, NumLigne) & ";" & Me.ListVACATAIRES.Column(4, NumLigne)

End Sub

Private Sub exporter(monAppli As String, data As String)

    data = Replace(data, ";", "{TAB}")
    On Error GoTo fin
    AppActivate monAppli
    Application.SendKeys (data)

    Exit Sub

fin:
    MsgBox "L'application """ & monAppli & """ n'est pas lancée !"

End Sub
14base-de-donnees.xlsm (146.82 Ko)

Impec !!!

Par contre pourrais tu me dire comment exporter une date en format date? Les miennes retournent en format standard.

format(la_date,"dd/mm/yyyy")

Merci mais dans d'une date exporté d'une listbox cela donnerait quelquechose comme ca

& Format([Me.ListVACATAIRES.Column(29, NumLigne)], "dd/mm/yyyy")?

En effet c'est bien ca enfin sans les [ ]

Serait-il possible avant d'exporter les données d'inclure une condition et dans ce cas là effectuer telle façon d'exporter en fonction d'une ou plusieurs données sur la ligne sélectionnée?

Par exemple

' SI

Me.ListVACATAIRES.Column(2, NumLigne) = Monsieur alors effectue cette facon d'exporter

Me.ListVACATAIRES.Column(2, NumLigne)= Madame effectue cette facon d'exporter

SiMe.ListVACATAIRES.Column(2, NumLigne) = Mademoiselle telle facon ect

'Pour un Monsieur:
exporter "Sans titre - Bloc-notes", Me.ListVACATAIRES.Column(1, NumLigne) & ";" & Me.ListVACATAIRES.Column(2, NumLigne) & "," & Me.ListVACATAIRES.Column(4, NumLigne) _
 " & ";" & Me.ListVACATAIRES.Column(26, NumLigne) & ";"  & Format(Me.ListVACATAIRES.Column(29, NumLigne), "dd/mm/yyyy") & "210" & ";"  & Me.ListVACATAIRES.Column(31, NumLigne)

'Pour une Madame:
exporter "Sans titre - Bloc-notes", Me.ListVACATAIRES.Column(1, NumLigne) & ";" & Me.ListVACATAIRES.Column(2, NumLigne) & "," & Me.ListVACATAIRES.Column(4, NumLigne) _
 & ";" & "2" & ";" & Me.ListVACATAIRES.Column(27, NumLigne) & ";" & Format(Me.ListVACATAIRES.Column(29, NumLigne), "dd/mm/yyyy")  & "210" & ";" & Me.ListVACATAIRES.Column(31, NumLigne)

'Pour une demoiselle:
exporter "Sans titre - Bloc-notes", Me.ListVACATAIRES.Column(1, NumLigne) & ";" & Me.ListVACATAIRES.Column(2, NumLigne) & "," & Me.ListVACATAIRES.Column(4, NumLigne) _
 & ";" & "3" & ";" & Me.ListVACATAIRES.Column(27, NumLigne) & ";" & Format(Me.ListVACATAIRES.Column(29, NumLigne), "dd/mm/yyyy")  & "210" & ";" & Me.ListVACATAIRES.Column(31, NumLigne)
If Me.ListVACATAIRES.Column(2, NumLigne) = "Monsieur" Then
'Pour un Monsieur:
exporter "Sans titre - Bloc-notes", Me.ListVACATAIRES.Column(1, NumLigne) & ";" & Me.ListVACATAIRES.Column(2, NumLigne) & "," & Me.ListVACATAIRES.Column(4, NumLigne) _
 & ";" & Me.ListVACATAIRES.Column(26, NumLigne) & ";" & Format(Me.ListVACATAIRES.Column(29, NumLigne), "dd/mm/yyyy") & "210" & ";" & Me.ListVACATAIRES.Column(31, NumLigne)

ElseIf Me.ListVACATAIRES.Column(2, NumLigne) = "Madame" Then
'Pour une Madame:
exporter "Sans titre - Bloc-notes", Me.ListVACATAIRES.Column(1, NumLigne) & ";" & Me.ListVACATAIRES.Column(2, NumLigne) & "," & Me.ListVACATAIRES.Column(4, NumLigne) _
 & ";" & "2" & ";" & Me.ListVACATAIRES.Column(27, NumLigne) & ";" & Format(Me.ListVACATAIRES.Column(29, NumLigne), "dd/mm/yyyy") & "210" & ";" & Me.ListVACATAIRES.Column(31, NumLigne)

Else
'Pour une demoiselle:
exporter "Sans titre - Bloc-notes", Me.ListVACATAIRES.Column(1, NumLigne) & ";" & Me.ListVACATAIRES.Column(2, NumLigne) & "," & Me.ListVACATAIRES.Column(4, NumLigne) _
 & ";" & "3" & ";" & Me.ListVACATAIRES.Column(27, NumLigne) & ";" & Format(Me.ListVACATAIRES.Column(29, NumLigne), "dd/mm/yyyy") & "210" & ";" & Me.ListVACATAIRES.Column(31, NumLigne)

End If

Bonsoir,

J'ai une nouvelle problématique ce soir. J'ai bien compris comment utilisé le worksheet double click pour envoyer des données dans une autre feuille mais comment appliquer à celles ci avant le copiage quelques modifications comme la suppression d'espace, l’enchevêtrement d'autres cellules et surtout la possibilité de pouvoir copier les données à la prochaine ligne vide. Ci joint les fichiers excel

6extraction.xlsx (9.91 Ko)

Pour la numérotation à 2 chiffres, on peut intervenir sur le format (mais le transfert ne le prendrait pas en compte), ou bien faire en VBA

Right("00" & Range("J2"), 2)

Pour le code INSEE et e NUDOS

Replace(Range("B2"), " ", "") & " " & Right("00" & Range("J2"), 2)

Pour le nom

UCase(Range("C2")) & "," & UCase(Range("D2"))

Super !Mais comment envoyer les données sur la derniere ligne libre de la feuille d extraction?

S'il s'agit de 2 fichiers excel (ce que tu dévoiles maintenant), il n'est pas utile de procéder via sendkeys.

Redonne l'intégralité de tes fichiers et tes macros. Mais la solution n'est pas dans ce topic qui visait à résoudre une transmission d'information vers un logiciel autre qu'excel, SAP en l’occurrence.

Merci pour ta patience !

Advienne que pourra

6extraction.xlsx (8.38 Ko)
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Application.Intersect(Target, Range("B:B")) Is Nothing Then
        derLigne = Workbooks("EXTRACTION.xlsx").Worksheets("FICHEX").Cells(Rows.Count, 1).End(xlUp).Row + 1
        Range("A" & Target.Row & ":I" & Target.Row).Copy Destination:=Workbooks("EXTRACTION.xlsx").Worksheets("FICHEX").Range("A" & derLigne)
        Target.Select
    End If
End Sub
Rechercher des sujets similaires à "piloter logiciel via vba"