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 :

Initialiser un USF


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut Initialiser un USF
    Bonjour,

    J'ai un USF modal qui reprend les valeurs du tableau "Q6:R20" qui lui s'alimente des cellules "A4: K 200".
    J'aimerais que lorsque j'ajoute une ligne donc lorsque je change les valeurs du tableau, l'USF prend ou s'initialise les valeurs que le tableau.
    Pas trop évident a expliqué.

    Pour illustrer ma demande, je joins un fichier

    Fichier joint dans vos discussions

    Je vous remercie de votre aide

    Cordialement


    Max

  2. #2
    Membre éclairé Avatar de nchal
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 512
    Par défaut
    J'ai pas tout compris ce que tu veux faire.
    Et si j'ai bien compris P.Fauconnier, il ne faut pas envoyé de PJ lors des premiers messages. Donc je propose que tu developpe un peu plus et comme le dis si bien N.Boileau : "Ce qui concoit bien s'énonce clairement et les mots pour le dire arrivent aisément"

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 99
    Par défaut
    Bonsoir Mawval 18 le forum
    tu parles d'un Usf? est-ce que c'est bien un USF? si oui ta liste elle est ou? dans une listbox? et les changements seraient donc dans le tableau Q6:R20?
    et ce tableau il est fixe quel que soit la récupération de A4 à K200?
    Bref tes explications sont brouillonnes et à mon sens ne permettent pas de te répondre, expliques toi clairement et on va t'aider c'est sur
    a+
    papou

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut
    Bonjour

    Je vais essayé de développer.
    Je rentre sur ma feuil1 dans les colonnes "A : K" mes valeurs, j'ai un tableau sur le côté qui reprend ces valeurs et J'ai bien un USF modal qui est donc toujours visible a l'écran même quand je descends vers le bas "sa c'est du pléonasme" mon USF reprend toutes les valeurs du tableau et j'aimerais que lorsque j'ajoute ou je modifie une ligne sur ma feuille, l'USF s'initialise voila


    Je vous remercie de votre aide

    Cordialement


    Max

  5. #5
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonjour,

    comment est initialisé ton userform actuellement ? montre nous le code exécuté lors de l'ouverture de celui-ci (entre balises de [code])

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut
    Bonjour,

    Voici mon code de l'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
    Private Sub UserForm_Initialize()
     
     
    TextBox1.Value = Sheets("Feuil1").Range("Q6").Value
    TextBox1.Value = Format(TextBox1.Value, "0.00 €")
     
    TextBox2.Value = Sheets("Feuil1").Range("Q7").Value
    TextBox2.Value = Format(TextBox2.Value, "0.00 €")
     
    TextBox3.Value = Sheets("Feuil1").Range("Q8").Value
    TextBox3.Value = Format(TextBox3.Value, "0.00 €")
     
    TextBox4.Value = Sheets("Feuil1").Range("R8").Value
    TextBox4.Value = Format(TextBox4.Value, "0.00 €")
     
    TextBox5.Value = Sheets("Feuil1").Range("Q10").Value
    TextBox5.Value = Format(TextBox5.Value, "0.00 €")
     
    TextBox6.Value = Sheets("Feuil1").Range("Q14").Value
    TextBox6.Value = Format(TextBox6.Value, "0.00 €")
     
    TextBox7.Value = Sheets("Feuil1").Range("Q15").Value
    TextBox7.Value = Format(TextBox7.Value, "0.00 €")
     
    TextBox8.Value = Sheets("Feuil1").Range("R11").Value
    TextBox8.Value = Format(TextBox8.Value, "0.00 €")
     
    TextBox9.Value = Sheets("Feuil1").Range("R12").Value
    TextBox9.Value = Format(TextBox9.Value, "0.00 €")
     
    TextBox10.Value = Sheets("Feuil1").Range("R13").Value
    TextBox10.Value = Format(TextBox10.Value, "0.00 €")
     
    TextBox11.Value = Sheets("Feuil1").Range("R16").Value
    TextBox11.Value = Format(TextBox11.Value, "0.00 €")
     
    TextBox12.Value = Sheets("Feuil1").Range("R17").Value
    TextBox12.Value = Format(TextBox12.Value, "0.00 €")
     
    TextBox13.Value = Sheets("Feuil1").Range("Q19").Value
    TextBox13.Value = Format(TextBox13.Value, "0.00 €")
     
    TextBox14.Value = Sheets("Feuil1").Range("Q20").Value
    TextBox14.Value = Format(TextBox14.Value, "0.00 €")
     
    TextBox15.Value = Sheets("Feuil1").Range("R19").Value
    TextBox15.Value = Format(TextBox15.Value, "0.00 €")
     
     
    Me.Label20.Caption = "Nous sommes le ;  " & Format(Date, "dddd d mmmm yyyy")
    Me.Label22.Caption = Format(Date, "dd/mm/yyyy")
    End Sub
    Et voici le code de ma feuille

    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
    Private test As Boolean 'déclare la variable test
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    'Réinitialise  l'USF
            If Not (Intersect(Target, Range("D4:E200")) Is Nothing) Then
            Unload UserForm1
                 UserForm1.Show 0
            End If
    'Stop
     
    'Interdire les cellules non aproprier Achat / Recette
     
    If Target = "" Or Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [D4:D65000]) Is Nothing Then
     
        If Not IsNumeric(Target) Then MsgBox "Ce n'est pas une valeur numérique": Target = ""
        If Left(Target.Offset(, -1), 5) <> [D2] Then MsgBox "Ce n'est pas un Achat": Target = "" '(, -1), 5)le 5 veut dire Achat = 5 lettre
    End If
    If Not Intersect(Target, [E4:E65000]) Is Nothing Then
        If Not IsNumeric(Target) Then MsgBox "Ce n'est pas une valeur numérique": Target = ""
        If Left(Target.Offset(, -2), 7) <> [E2] Then MsgBox "Ce n'est pas une Recette": Target = "" '(, -1), 7)le 5 veut dire Recette = 7 lettre
    End If
    'Stop
     
    'Mettre la colonne "C" en nom propre
     
      ' Si plus d'une cellule sélectionnée, on sort
    If Target.Count > 1 Then Exit Sub
      ' Si la cellule ne contient rien
    If Target.Value = "" Then Exit Sub
      ' Sinon
     ' Si la cellule modifiée se trouve dans la plage A1:B10
    If Not Intersect(Target, [C1:C300]) Is Nothing Then
        ' Comme on va modifier de nouveau la cellule
       ' empêcher les évênements de se lancer
       Application.EnableEvents = False
        ' La valeur de la cellule modifiée est égale
       ' à l'évaluation de la fonction NOMPROPRE(Cellule)
       Target.Value = Application.Evaluate("PROPER(""" & Target.Value & """)")
        ' réactiver les évènements
       Application.EnableEvents = True
      End If
    'Stop
     
     
    'Mettre le N° dans la colonne "K"
     
    If test = True Then Exit Sub 'si la variable test est vrai, sort de la procédure
    If Target.Column <> 12 Then Exit Sub 'si la colone de la cellule éditée est différente de 11, sort de la procédure Colonne "K"
    If Target.Row < 4 Then Exit Sub 'si la ligne de la cellule éditée est inférieure à 4, sort de la procédure
    If Selection.Cells.Count > 1 Then Exit Sub 'si le nombre de cellules sélectionnées est supérieur à 1, sort de la procédure
    If Target.Value = "" Then Exit Sub 'si la cellule est effacée, sort de la procédure
    test = True 'définit la variable test
    Target.Value = "Nº " & Target.Value 'rajoute "Nº "
    test = False 'redéfinit la variable test
     
    End Sub
     
     
    'Mettre la date ainsi que mise en forme de la ligne
     
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Column <> 1 Then Exit Sub 'si la cellule double-cliqué est ailleurs que dans la colonne A, sort de la procédure
    Cancel = True 'evite le mode édition lié au double-clic
     
    'place la date en évitant les problèmes d'inversion jour/mois
    Target.Value = Format(Day(Date), "00") & "/" & Format(Month(Date), "00") & "/" & Year(Date)
     
    'mise en forme de la ligne
    With Range(Cells(Target.Row, 1), Cells(Target.Row, 11)) 'prend en compte les cellules des colonnes A à J de la cellule double-cliquée
     
        With .Borders(xlEdgeLeft) 'ligne à gauche
            .LineStyle = xlContinuous
            .Weight = xlHairline
            .ColorIndex = xlAutomatic
        End With
        With .Borders(xlEdgeTop) 'ligne du haut
            .LineStyle = xlContinuous
            .Weight = xlHairline
            .ColorIndex = xlAutomatic
        End With
        With .Borders(xlEdgeBottom) 'ligne du bas
            .LineStyle = xlContinuous
            .Weight = xlHairline
            .ColorIndex = xlAutomatic
        End With
        With .Borders(xlEdgeRight) 'ligne à drote
            .LineStyle = xlContinuous
            .Weight = xlHairline
            .ColorIndex = xlAutomatic
        End With
    End With 'fin de la prose en compte des...
     
    'mise en forme et valeur de la cellule en colonne G
    Target.Offset(0, 6).NumberFormat = "#,##0.00 $" 'format
    Target.Offset(0, 6).Font.Bold = True 'gras
    'Target.Offset(0, 6).Value = 0 'valeur
     
    'mise en forme et valeur de la cellule en colonne J
    Target.Offset(0, 10).NumberFormat = "#,##0.00 $" 'format
    Target.Offset(0, 10).Font.Bold = True 'gras
    Target.Offset(0, 10).Font.Name = "Times New Roman"
    Target.Offset(0, 10).Font.Color = vbBlue
    'Target.Offset(0, 9).Value = Target.Offset(-1, 9) 'valeur
    Target.Offset(0, 10).Interior.Color = vbYellow
    Target.Offset(0, 10).Font.Italic = True
     
    End Sub



    @+

    Max

  7. #7
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Et c'est quoi qui ne fonctionne pas comme tu veux ? lorsque tu effectue un changement dans ta feuille les textbox 1 à 15 sont bien mis à jour ?

Discussions similaires

  1. [XL-2010] Initialiser un USF en fonction d'un bouton
    Par katle77 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/06/2014, 13h01
  2. Comment peut on initialiser une combobox sans fermer USF
    Par apdf1 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/03/2011, 15h01
  3. [e-07]initialisation USF avec 3 listbox
    Par casefayere dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 20/04/2009, 14h51
  4. Initialisation de XMLModule
    Par Sylvain Leray dans le forum XMLRAD
    Réponses: 10
    Dernier message: 01/04/2003, 10h08
  5. initialisation Directinput avec delphi
    Par Madmaxx dans le forum DirectX
    Réponses: 1
    Dernier message: 21/02/2003, 17h37

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