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 :

Largeur de Colonne dans formulaire de recherche par numéro de fiche [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Employer
    Inscrit en
    Septembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Employer
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2014
    Messages : 8
    Par défaut Largeur de Colonne dans formulaire de recherche par numéro de fiche
    Bonjour,

    J'ai adapté un script en VBA utilisé au départ pour un carnet d'adresse pour une autre utilisation. C'est un formulaire de recherche par numéro de fiche. Lorsque l'on clique sur le numéro de la fiche, toutes les données que l'on a rentré (par colonne) s'affiche dans les cases données. Le formulaire fonctionne bien, mais j'aimerais pouvoir changer l'affichage d'une colonne et je n'arrive pas à trouver l'endroit où faire ce changement.

    Sur une feuille j'ai donc par exemple les colonnes NUMERO DE FICHE, TITRE EN FRANCAIS, TITRE EN VO, TYPE ENREGISTREMENT, NOMBRE DE SAISON ......(tous les titres sont en majuscule).

    Lorsque je fais un userform avec le code suivant :


    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    Dim f, nbCol, pointeur, ligne
     
    Private Sub Label1_Click()
     
    End Sub
     
    Private Sub UserForm_Initialize()
      Set f = Sheets("Donnees")
     'Donnees est le nom de ma feuille où se trouve mon tableau
      ligne = 2
      nbCol = f.[A1].CurrentRegion.Columns.Count
      x = 20
      y = 25
      For I = 1 To nbCol
          retour = Me.Controls.Add("Forms.Label.1", "Label" & I, True)
        Me("label" & I).Caption = f.Cells(2, I)
        Me("label" & I).Top = y
        Me("label" & I).Left = x
        retour = Me.Controls.Add("Forms.TextBox.1", "TextBox" & I, True)
        Me("textbox" & I).Top = y
        Me("textbox" & I).Left = x + 160
        Me("textbox" & I).Width = f.Columns(I).Width + 20
        Me("textbox" & I).Value = f.Cells(ligne, I)
        y = y + 20
      Next
      retour = Me.Controls.Add("Forms.Label.1", "Label" & I, True)
      Me("label" & I).Caption = f.Cells(1, 1)
      Me("label" & I).Top = Me.ListBox1.Top - 10
      Me("label" & I).Left = Me.ListBox1.Left + 30
      '--
      For I = 2 To f.[A65000].End(xlUp).Row
          Me.ListBox1.AddItem
          Me.ListBox1.List(I - 2, 0) = f.Cells(I, 1)
          Me.ListBox1.List(I - 2, 1) = I
       Next
       pointeur = 1
       If nbCol > 8 Then Me.Height = y + 30
       pointeur = 0
       ligne = Me.ListBox1.List(pointeur, 1)
       affiche
    End Sub
     
    Private Sub ListBox1_Click()
      ligne = Me.ListBox1.Column(1)
      pointeur = Me.ListBox1.ListIndex
      affiche
    End Sub
     
    Private Sub b_suiv_Click()
     If pointeur < Me.ListBox1.ListCount - 1 Then
       pointeur = pointeur + 1
       ligne = Me.ListBox1.List(pointeur, 1)
       affiche
     End If
    End Sub
     
    Private Sub b_prec_Click()
     If pointeur > 0 Then
       pointeur = pointeur - 1
       ligne = Me.ListBox1.List(pointeur, 1)
       affiche
     End If
    End Sub
     
    Private Sub b_premier_Click()
       pointeur = 0
       ligne = Me.ListBox1.List(pointeur, 1)
       affiche
    End Sub
     
    Private Sub b_dernier_Click()
       pointeur = Me.ListBox1.ListCount - 1
       ligne = Me.ListBox1.List(pointeur, 1)
       affiche
    End Sub
     
    Private Sub B_ok_Click()
      Me.ListBox1.Clear
      I = 0
      Set plage = f.[A1].CurrentRegion
      Set c = plage.Find(Me.MotCle, , , xlPart)
      If Not c Is Nothing Then
        premier = c.Address
        Do
          Me.ListBox1.AddItem
          lig = c.Row
          Me.ListBox1.List(I, 0) = plage.Cells(lig, 1)
          Me.ListBox1.List(I, 1) = lig
          I = I + 1
          Set c = plage.FindNext(c)
         Loop While Not c Is Nothing And c.Address <> premier
       End If
       pointeur = 0
       ligne = Me.ListBox1.List(pointeur, 1)
       affiche
    End Sub
     
    Private Sub b_tout_Click()
      Me.ListBox1.Clear
      For I = 2 To f.[A65000].End(xlUp).Row
          Me.ListBox1.AddItem
          Me.ListBox1.List(I - 2, 0) = f.Cells(I, 1)
          Me.ListBox1.List(I - 2, 1) = I
       Next
       pointeur = 0
       ligne = Me.ListBox1.List(pointeur, 1)
       affiche
    End Sub
     
    Sub affiche()
      For I = 1 To nbCol:
        Me("textbox" & I).Value = f.Cells(ligne, I)
        w = Evaluate("Cell(""format""," & f.Cells(ligne, I).Address & ")")
        If Left(w, 1) = "C" Then Me("textbox" & I).Value = Format(f.Cells(ligne, I), "")
      Next I
    End Sub
    et que l'on affiche la fenêtre j'ai "TYPE ENREGISTREMENT" ou "NOMBRE DE SAISON" qui s'affiche sur deux lignes. J'aimerais le mettre sur une seule ligne mais impossible de trouver où çà se trouve.

    Merci pour votre aide.

  2. #2
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 430
    Billets dans le blog
    11
    Par défaut
    Si tu veux que les deux champs soient au même endroit, il faut rendre visible celui que tu veux voir apparaître et l'autre invisible avec la fonction Champ.Visible = True ou False.

  3. #3
    Membre régulier
    Homme Profil pro
    Employer
    Inscrit en
    Septembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Employer
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2014
    Messages : 8
    Par défaut
    Merci mais pourriez vous m'indiquer où je met ce code ?.
    Lorsque je rajoute une colonne, tout fonctionne bien. Le code récupère le nom de la colonne et lorsque je clique sur le numéro de fiche, cela récupère les données de toutes les colonnes même celle de la nouvelle colonne. Mais si le titre est "trop long" cela m'affiche sur 2 lignes au lieu d'une comme le titre d'une colonne !. Mais je n'ai quand même qu'un seul champ. Si j'agrandi la largeur de la colonne, çà ne m'agrandi que la longueur de la textbox où apparaîtra mes données. J'aimerais pouvoir avoir le nom de mes colonnes sur une seule ligne, peut importe le nombre de caractère du titre de ma colonne.
    Par exemple "TYPE ENREGISTREMENT" s'affiche

    TYPE
    ENREGISTREMEN

    Ou "NOMBRE DE SAISON" s'affiche

    NOMBRE DE
    SAISON

    Merci pour votre aide

  4. #4
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 430
    Billets dans le blog
    11
    Par défaut
    Petite question dans ta requête tu as une valeur soit pour TYPE ENREGISTREMENT ou pour NOMBRE DE SAISON !
    Ai-je bien compris ?

  5. #5
    Membre régulier
    Homme Profil pro
    Employer
    Inscrit en
    Septembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Employer
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2014
    Messages : 8
    Par défaut re
    J'ai une valeur dans les colonnes mais pas dans une requête. Je peux te faire parvenir mon fichier si tu veux voir se que donne le formulaire de recherche

  6. #6
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 430
    Billets dans le blog
    11
    Par défaut
    Citation Envoyé par nonoBruno38 Voir le message
    J'ai une valeur dans les colonnes mais pas dans une requête. Je peux te faire parvenir mon fichier si tu veux voir se que donne le formulaire de recherche
    Je veux bien.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/06/2012, 08h47
  2. largeur de colonne dans une zone de liste
    Par fsautejeau dans le forum Access
    Réponses: 2
    Dernier message: 25/08/2006, 13h29
  3. [SQL]vs[VBA] dans formulaire de recherche
    Par alex.a dans le forum Access
    Réponses: 3
    Dernier message: 28/07/2006, 16h20
  4. Dans formulaire de recherche avancée dans Access
    Par LeSuisse1 dans le forum Access
    Réponses: 1
    Dernier message: 24/04/2006, 15h59
  5. Figer colonnes dans formulaire continu
    Par Mr.Gus dans le forum IHM
    Réponses: 10
    Dernier message: 30/11/2003, 13h59

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