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 :

Plage de sélection [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Invité
    Invité(e)
    Par défaut Plage de sélection
    Bonjour à tous et Meilleurs Voeux 2016

    Un petit problème:

    Sur une feuille de classeur qui récupère toutes les données d'INTERVENTIONS j'ai un USF qui m'affiche toutes les interventions. (sur 18 colonnes de A à R)

    Moi je ne voudrais que la liste dont la colonne M est vide et avec les colonnes de A à G et de M à O

    Pour info: sur la feuille INTERVENTIONS, la ligne 2 comporte les ENTETES et les données commencent à la ligne 3

    Les codes du dessous ne sont pas de moi, mais récupérés et adaptés


    Merci d'avance

    CODE USF:
    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
     
    Dim nbcol
    Dim Lbl(1 To 18) As New ClasseSaisieInterv
    Private Sub Btn_Fermer_Click()
    Unload Me
    End Sub
     
    Private Sub UserForm_Initialize()
      Set F = Sheets("INTERVENTIONS")
      nbcol = F.[A2].CurrentRegion.Columns.Count
      Me.ListBox1.ColumnCount = nbcol
      Set plage = F.[A2].CurrentRegion
      Set plage = plage.Offset(2).Resize(plage.Rows.Count - 1) 'plage.offset(2) signifie que l'on commence à la ligne 2+1)
      Me.ListBox1.List = plage.Value
      I = 1
      x = 18
      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 = 55
        Me("label" & I).Left = x
        x = x + F.Columns(I).Width * 1.1
        temp = temp & F.Columns(I).Width * 1.1 & ";"
      Next
      Me.ListBox1.ColumnWidths = temp
      For b = 1 To nbcol: Set Lbl(b).GrLabel2 = Me("Label" & b): Next b
    End Sub
     
    Private Sub TextBox1_Change()
     Me.ListBox1.Clear
     I = 0
     Set plage = F.[b1].CurrentRegion
     Set plage = plage.Offset(1).Resize(plage.Rows.Count - 1)
     Set C = plage.Find(Me.TextBox1, , , xlPart)
     If Not C Is Nothing Then
          premier = C.Address
          Do
              Me.ListBox1.AddItem
              lig = C.Row - plage.Row + 1
              For col = 1 To nbcol
                Me.ListBox1.List(I, col - 1) = plage.Cells(lig, col)
              Next col
              I = I + 1
            Set C = plage.FindNext(C)
          Loop While Not C Is Nothing And C.Address <> premier
      End If
    End Sub
     
    Private Sub B_tout_Click()
      UserForm_Initialize
      For I = 1 To nbcol
        Me("label" & I).ForeColor = vbBlack
      Next I
    End Sub
    CODE Module Classe:
    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
    Public WithEvents GrLabel2 As MSForms.Label
    Private Sub GrLabel2_Click()
      nbcol = Sheets("INTERVENTIONS").[A2].CurrentRegion.Columns.Count
      temp = GrLabel2.Name
      col = Val(Mid(temp, 18))
      If IsNumeric(F.Cells(3, col)) Then num = True Else num = False
      For I = 1 To nbcol
        Recap_Interventions("label" & I).ForeColor = vbBlack
      Next I
      Recap_Interventions(temp).ForeColor = vbRed
      Dim a()
      a = Recap_Interventions.ListBox1.List
      nbcol = UBound(a, 2) - LBound(a, 2) + 1
      If col <> OrdreAncien Then ordre = False
      Call TriCD(a(), UBound(a), col - 1, Not ordre, nbcol, num)
      ordre = Not ordre
      OrdreAncien = col
      Recap_Interventions.ListBox1.List = a
    End Sub

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir à tous,

    Problème résolu

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

Discussions similaires

  1. tableau croisé dynamique avec plage de sélection variable
    Par nat44 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 10/07/2008, 13h29
  2. [VBA-E] empêcher la sélection de certaines plages
    Par NicolasMO dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 12/02/2007, 08h07
  3. sélection plage de cellule sur Msflexgrid
    Par Charly45 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 22/12/2006, 15h35
  4. Macro en fonction d'une sélection de plage de cellules.
    Par Labiche dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/08/2006, 10h23
  5. Sélection d'une plage de dates
    Par Bouanda dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 24/10/2004, 20h27

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