Usage de Split

Bonjour, je cherche a remplacer ActiveCell par une variable et ca ne fonctionne pas, pourtant le contenu de ma variable est une string de meme format que ActiveCell.value. Ma variable s'apelle Référence. Quelqu'un a une idée?

Voici un exemple du format de ma variable: 3:02:28

 strArray = Split(ActiveCell.Value, ":") 
  strArray = Split(Référence, ":")

Merci!

bonjour,

mdr !

Essaie donc de placer (juste avant...) un :

MsgBox ActiveCell.Value

[EDIT]

Après cette expérience enrichissante et un brin de méditation, tu pourras essayer :

strArray = Split(ActiveCell.Text, ":") 

A+

désolé, je ne vois pas ou tu veux en venir. Je ne veut pas la cellule active, mais une cellule mémoriser dans la variable Référence.

Qu'est-ce que tu veux que je fasse de ta tranche de code sans queue ni tête ?

"Désolé, je ne vois pas ou tu veux en venir !"

C'est pas moi qui ai écrit ça :

strArray = Split(ActiveCell.Value, ":")

et le reste, je peux pas deviner !

Si "ta variable est un string de même format que ActiveCell.value" c'est que tu peux l'envoyer en MsgBox et le format de ActiveCell.Value on s'en fout c'est en général un format pour l'écran...

Donc...

Tu fournis une petit bout de fichier qui illustre bien la situation, ou on peux voir tes déclarations, faire du débogage et non pas se baser sur tes affirmations. Que veux tu que je fasse de ta "référence" dont on ne sait pas d'où elle sort ?

ou... Je peux pas t'en dire plus ! J'ai pas de boule... (de cristal)

Enervé moi ? Ménon...

A+

Voila Monsieur:

la ligne qui me donne une erreur est : strArray = Split(Référence, ":")

Mon application Excel appel une application autre, alors je te fourni un bout de code seulement.

Private Sub CommandButton10_Click() 'bouton Recall
     Dim strArray() As String
     Dim hour As String: hour = "0"
     Dim min As String: min = "0"
     Dim sec As String: sec = "0"
     Dim totalSeconds As Integer: totalSeconds = 0

     strArray = Split(Référence, ":") 'Référence est une variable public qui a ce format: h:min:sec  ex. 3:03:45
     If UBound(strArray) = 1 Then
        min = strArray(0)
        sec = strArray(1)
     Else
        hour = strArray(0)
        min = strArray(1)
        sec = strArray(2)
     End If

     totalSeconds = totalSeconds + 3600 * CInt(hour)
     totalSeconds = totalSeconds + 60 * CInt(min)
     totalSeconds = totalSeconds + sec

     Dim wsh As Object
     Set wsh = VBA.CreateObject("WScript.Shell")
     Dim errorCode As Integer
     Dim waitForReturn As Boolean: waitForReturn = True

     errorCode = wsh.Run("powershell.exe –ExecutionPolicy Bypass -File """ & Application.ActiveWorkbook.Path & "\stop_vlc_process.ps1""", 6, waitForReturn)
     Call Shell("powershell.exe –ExecutionPolicy Bypass -File """ & Application.ActiveWorkbook.Path & "\start_vlc_with_time.ps1"" -time " & totalSeconds, 6)

End Sub

Bonsoir,

Il me semble que tu oublies juste la principale question de Galopin : le type de données de Référence (tu n'indiques pas sa déclaration !)

Salut Galopin !

Bonsoir, oui tu as raison!

Dans un module:

Option Explicit

Public Pieces As Integer
Public Note As Integer
Public Style As Integer
Public size As Integer
Public couleur
Public limit As Boolean
Public edit As Boolean
Public VLC As Boolean
Public Référence As String
Private Sub CommandButton8_Click() 'bouton Save

Référence = ActiveCell.Value

End Sub

Parfait !

Il ne te reste plus qu'à faire le test conseillé par Galopin :

tu ajoutes à la proc. d'initialisation :

    Référence = ActiveCell.Value
    MsgBox Référence

Qu'est-ce que tu entend par procédure d'initialisation?

Tu sais pas lire ? Celle qui initialise ta variable ! La dernière que tu as citée...

J'ignore pourquoi, mais il me semble que mon code original marche! Je n'ai plus de message d'erreur.

Merci de votre patiente!

Private Sub CommandButton8_Click() 'bouton Save

Référence = ActiveCell.Value

End Sub

Private Sub CommandButton10_Click() 'bouton Recall

Dim strArray() As String

Dim hour As String: hour = "0"

Dim min As String: min = "0"

Dim sec As String: sec = "0"

Dim totalSeconds As Integer: totalSeconds = 0

strArray = Split(Référence, ":")

If UBound(strArray) = 1 Then

min = strArray(0)

sec = strArray(1)

Else

hour = strArray(0)

min = strArray(1)

sec = strArray(2)

End If

totalSeconds = totalSeconds + 3600 * CInt(hour)

totalSeconds = totalSeconds + 60 * CInt(min)

totalSeconds = totalSeconds + sec

Dim wsh As Object

Set wsh = VBA.CreateObject("WScript.Shell")

Dim errorCode As Integer

Dim waitForReturn As Boolean: waitForReturn = True

errorCode = wsh.Run("powershell.exe –ExecutionPolicy Bypass -File """ & Application.ActiveWorkbook.Path & "\stop_vlc_process.ps1""", 6, waitForReturn)

Call Shell("powershell.exe –ExecutionPolicy Bypass -File """ & Application.ActiveWorkbook.Path & "\start_vlc_with_time.ps1"" -time " & totalSeconds, 6)

End Sub[/code]

Rechercher des sujets similaires à "usage split"