none
VBA : comment enlever les deux guillemets qui se trouvent avant et après une chaine de caractère. RRS feed

  • Question

  • Bonjour,

    je crée des chaines de caractères pour obtenir des noms d'une manière dynamique mais j'ai besoin pour manipuler les oleobjects d'enlever les deux " ". Comment faire ? quel est le type de variable ainsi créée ?

    Merci

    mardi 23 juin 2015 19:25

Réponses

  • mon souci est que si j'ecris : activeworksheets. "comboI10".value    j'ai un message d'erreur

    activeworksheets.comboI10.value fonctionne

    or le nombre de ligne du tableau est variable , donc le nombre de combo aussi.

    • Marqué comme réponse boisseliere mercredi 24 juin 2015 02:08
    mercredi 24 juin 2015 02:08
  • Je ne suis pas sûr de comprendre. Si tu veux désigner un combobox par "NomComboDeb" par exemple, écris :

    Worksheets("encours").OleObjects(NomComboDeb)

    Daniel

    mercredi 24 juin 2015 15:56

Toutes les réponses

  • Si tu écris :

    Var = "Chaîne"

    Tu obtiens une variable de type "String". Les guillemets ne font pas partie de la valeur de la variable. Ils servent seulement de délimiteurs. Si l'on compte le nombre de caractères de la variable "Var" ci-dessus :

    Debug.Print Var renvoie 6.

    Daniel

    mardi 23 juin 2015 20:08
  • mon souci est que si j'ecris : activeworksheets. "comboI10".value    j'ai un message d'erreur

    activeworksheets.comboI10.value fonctionne

    or le nombre de ligne du tableau est variable , donc le nombre de combo aussi.

    • Marqué comme réponse boisseliere mercredi 24 juin 2015 02:08
    mercredi 24 juin 2015 02:08
  • Oui, si tu mets "comboI10" entre guillemets, il ne s'agit pas d'un objet mais d'un texte. Par contre la seconde syntaxe :

    ActiveSheet.comboI10 fait bien référence à un objet.

    Daniel

    mercredi 24 juin 2015 09:06
  • oui je suis bien d'accord avec toi mais comment contourner ?

    je crée un texte en créant le nom et après, il ne faut plus que cela soit du texte  Comment faire ? 

    Boisselière

    mercredi 24 juin 2015 14:22
  • je crée un texte en créant le nom

    Peux-tu poster le code en question ?

    Daniel

    mercredi 24 juin 2015 15:14
  • j'ai mis la CombI2 pour voir si cela fonctionne.

    mais j'aimerais pouvoir mettre NomCombDeb

    Dans mon fichier qui se recrée à chaque ouverture et qui se recalcule en fonction de la réalisation des chantiers, il y a plusieurs lignes de chantiers ouverts et l'utilisateur doit pouvoir interagir sur une ligne ou une autre ligne.

    Private Sub Worksheet_Change(ByVal Target As Range)


    Dim i As Integer
    Dim DateDeb As Date
    Dim NbrePied As Integer
    Dim Rdt As Integer
    Dim Samedi As Integer
    Dim HeuresJour As Single
    Dim NbrePers As Integer
    Dim ligne As Integer
    Dim DateFin As Integer
    Dim NomCheckBox As Variant
    Dim NomComboDeb As Variant
    Dim NomComboFin As Variant

    'If ChangeFeuille = True Then

    If Target.Column = 16 Then
    ligne = Target.Row
    NomCheckBox = ""
    NomComboDeb = ""
    NomComboFin = ""
    NomCheckBox = "CheckboxM" & ligne
    NomComboDeb = "ComboI" & ligne

    NomComboFin = "ComboN" & ligne

    If Worksheets("encours").ComboI2.Value = "" Then
    MsgBox ("il faut rentrer une date de début du chantier")
    Else
    DateDeb = Worksheets("encours").ComboI2.Value
    End If

    mercredi 24 juin 2015 15:27
  • Je ne suis pas sûr de comprendre. Si tu veux désigner un combobox par "NomComboDeb" par exemple, écris :

    Worksheets("encours").OleObjects(NomComboDeb)

    Daniel

    mercredi 24 juin 2015 15:56
  • j'ai bondi de joie  et j'ai pensé que pour trouver cela j'aurais mis plus d'une semaine d'essais divers..

    Cela fonctionne

    Merci

    Boisselière

    mercredi 24 juin 2015 18:26