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

Macros et VBA Excel Discussion :

TextBox à décaler


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 5
    Par défaut TextBox à décaler
    Bonjour,

    Voici mon problème :

    J'ai une userform qui me permet d'envoyer du texte (à partir d'une zone de texte "Service1" dans la userform) dans la cellule A3 puis A4 etc...J'ai ensuite une macro qui crée des textbox remplies avec le texte des cellules A3, A4 etc... Seulement les textbox "s'empilent" les unes sur les autres. Comment puis-je les décaler ??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Sheets("Feuille de calcul").Select
     
            ligne = 3
        Do While Cells(ligne, 1) <> ""
            ligne = ligne + 1
        Loop
            Cells(ligne, 1) = Service1
     
        Sheets("front").Select
     
        Sheets("front").Shapes.AddTextbox(msoTextOrientationHorizontal, 910.5, 70.75, _141#, 38.25).Select
     
        Selection.ShapeRange.Fill.Visible = msoFalse
        Selection.ShapeRange.Fill.Transparency = 0#
        Selection.ShapeRange.Line.Weight = 0.75
        Selection.ShapeRange.Line.DashStyle = msoLineSolid
        Selection.ShapeRange.Line.Style = msoLineSingle
        Selection.ShapeRange.Line.Transparency = 0#
        Selection.ShapeRange.Line.Visible = msoFalse
        Selection.Characters.Text = Service1

  2. #2
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Afin que tu puisses observer le fonctionnement, ouvre un nouveau classeur et colle le code ci-dessous dans un Module.
    Ensuite tu l'exécute autant de fois que tu veux, les zones de texte s'alligneront les unes à la suite des autres
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Sub Zone_TB()
    Dim obj As Shape, Nb As Integer
    Dim L As Integer, T As Integer, W As Integer, H As Integer
     
    L = 200 '<-- position horizontale (Left)
    T = 50 '<-- position verticale (Top)
    W = 150 '<-- largeur (Width)
    H = 40 '<-- hauteur (Height)
     
    'comptage des zones de texte déjà insérées dans la feuille
    Nb = 1
    For Each obj In Sheets(1).Shapes
        If obj.Type = msoTextOrientationHorizontal Then Nb = Nb + 1
    Next
     
    'position de la nouvelle zone de texte par rapport à la précédente
    If Nb > 1 Then
        T = Sheets(1).Shapes("TB" & Nb).Top + Sheets(1).Shapes("TB" & Nb).Height + 5
    Else
        T = T
    End If
     
    'insertion de la nouvelle zone de texte
    With Sheets(1).Shapes.AddShape(msoTextOrientationHorizontal, L, T, W, H)
        .Name = "TB" & Nb + 1
        .TextFrame.Characters.Text = "Zone de texte n° " & Nb
        .TextFrame.HorizontalAlignment = xlCenter
        .TextFrame.VerticalAlignment = xlCenter
    End With
     
    End Sub
    Autre point, si je comprend bien ta boucle Do While, elle sert uniquement à trouver la dernière ligne de ta colonne A, c'est bien ça ?
    Si c'est le cas tu peux te passer de cette boucle et simplement écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(Rows.Count, 1).End(xlUp)(2) = Service1

Discussions similaires

  1. [XL-2013] Décaler automatiquement label après remplissage textbox
    Par MEUCORACAO dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/10/2013, 15h24
  2. [VB.NET] Sauvegarde dans TextBox des logons utilisés
    Par stephane93fr dans le forum ASP.NET
    Réponses: 3
    Dernier message: 27/10/2005, 11h00
  3. Réponses: 3
    Dernier message: 25/03/2004, 11h35
  4. Décaler des valeurs dans un tableau
    Par sh2003 dans le forum Langage
    Réponses: 6
    Dernier message: 20/03/2004, 16h01
  5. [VB6] [Interface] ScrolBar & TextBox
    Par DarkVader dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 25/10/2002, 18h40

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