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

Excel Discussion :

Comment interpréter une variable


Sujet :

Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 55
    Par défaut Comment interpréter une variable
    Bonjour à tous,

    Dans une boucle for i = 1 to x …next, je souhaite concatener 2 variables et me servir de ce résultat pour affecter une valeur à ma cellule comme suit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    For i = 1 To 5
       MaCellule = TextBox & i 
       ' MaCellule = "TextBox1"
       ActiveCell.Value = MaCellule 
       ' là je voudrais récupérer la valeur qui est dans le Texbox1 de mon Userform et je récupère en fait TextBox1
    Next
    Y a t il une solution pour interpréter MaCellule et avoir la valeur réelle.

    j'ai essayé &MaCellule mais je plante dans le code

    Merci de votre aide

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Bonjour,

    tu peux utiliser l'objet Range
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For i = 1 to 5
    MaCellule = "A" & i
    Range(MaCellule).Activate
    Msgbox "Cellule " & MaCellule & " activée"
    Next i
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre chevronné Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Par défaut
    Bonjour,

    Je crois qu'il parlait de quelque chose comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        For x = 1 To 10
            If Me.Controls("CheckBox" & x) = True Then
                nbChecked = nbChecked + 1
            End If
        Next x
    Dans l'exemple, il compte le nombre de cases cochés (de 1 à 10) dans mon USF.

    Il te reste à l'adapter!

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 55
    Par défaut Je me suis mal exprimé
    Mon cas de figure,

    j'ai un Userform avec 5 TextBox et 2 CommandButton (Valider, Sortie)

    J'effectue la saisie de mes 5 TextBox et je clique sur "Valide". Dans le code de "Sub CommandButton1_Click()" voilà ce que je souhaite faire :
    Je suis positionné sur une cellule (disons x), je copie la valeur de mon TextBox1 dans la cellule active (x), puis je me déplace d'une cellule vers la droite avec DeplaceCellActive, je copie le contenu de TextBox2, puis je me déplace d'une cellule vers la droite etc jusqu'à i = 5.
    je comptais me servir de la valeur de i dans la boucle pour définir de quel TextBox je devais récupérer la valeur. La valeur de la variable MaCellule étant la concaténation de "TexBox" + i je pensais que VBA interpréterait ActiveCell.Value = MaCellule comme si j'avais écris ActiveCell.Value = TextBox1, puis TextBox2 etc jusqu'à 5 or, dans ma cellule active (x) se copie la valeur TextBox1 et non la valeur contenue dans TextBox1,2,3 etc.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    For i = 1 To 5
       MaCellule = "TextBox" & i
       ActiveCell.Value = MaCellule
       Call DéplaceCellActive
       'Range("A2") = TextBox2
    Next
    ---------------
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub DéplaceCellActive()
    Dim LigVar, ColVar
    LigVar = 0
    ColVar = 1
    Selection.Offset(LigVar, ColVar).Select
    End Sub
    J'espère avoir été plus clair.

    Merci de ton aide

  5. #5
    Membre chevronné Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Par défaut
    Essais ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        Dim i As Integer
     
        For i = 1 To 5
     
            Worksheets("Feuil1").Cells(1, i) = Me.Controls("TextBox" & x).Value
     
        Next i
    De 1 à 5 il place tes textbox dans la colonne A,B,C,D et E de la ligne 1.
    Il est préférable d'utiliser cette technique (sans sélection et select)!

    Mais si jamais tu tiens à utiliser le offset, regarde ce code, il n'est pas nécessaire de créer une fonction pour le déplacement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        For i = 1 To 5
     
            ActiveCell = Me.Controls("TextBox" & x).Value
            ActiveCell.Offset(0, 1).Select
     
        Next i

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment déclarer une variable globale
    Par davkick dans le forum C
    Réponses: 13
    Dernier message: 20/05/2005, 18h50
  2. [Crystal Report] Comment amener une variable
    Par grom91 dans le forum SAP Crystal Reports
    Réponses: 9
    Dernier message: 11/02/2005, 12h07
  3. Comment completer une variable dans une PROC
    Par Le Basque dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 20/09/2004, 17h18
  4. Réponses: 6
    Dernier message: 14/02/2004, 14h01
  5. comment recuperer une variable dans flash
    Par krépuscul dans le forum Flash
    Réponses: 30
    Dernier message: 16/10/2003, 09h40

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