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 :

Amelioration de code [XL-2007]


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
    retraite
    Inscrit en
    Avril 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Espagne

    Informations professionnelles :
    Activité : retraite
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2010
    Messages : 325
    Par défaut Amelioration de code
    bonjour
    j'ai le code suivant et je souhaiterais lorsque je n'est pas encore de donnees sur ma feuille, que la case total = 0
    car actuellement il me faut une donnee, sinon la macro s'arrete au niveau de total
    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
    Sub MaJList()
    'il faut que tu supprimes ControleSource du TextBox1 dans les propriétés
    Dim Total As Double
    'Dans les propriété de ta ComboBox, met Style à fmStyleDropDownList, sa interdit à l'utilisateur de pouvoir taper n'importequoi
    Dim ShBarbeuc As Worksheet
    'On pointe sur la feuille Barbecue
    Set ShBarbeuc = ThisWorkbook.Sheets("Barbecue")
     
    'Suppression des titres de colonnes
    ListView1.ColumnHeaders.Clear
     
    'Alimentation des titres de colonne :
    'Mais tu doit avoir la propriété View à lvwReport
     
    ListView1.ColumnHeaders.Add , , "Mois", ListView1.Width * 0.1, lvwColumnLeft
    ListView1.ColumnHeaders.Add , , "Nom", ListView1.Width * 0.22, lvwColumnLeft
    ListView1.ColumnHeaders.Add , , "Nº MobilHome", ListView1.Width * 0.15, lvwColumnLeft
    ListView1.ColumnHeaders.Add , , "Duree", ListView1.Width * 0.1, lvwColumnLeft
    ListView1.ColumnHeaders.Add , , "Reglement", ListView1.Width * 0.12, lvwColumnLeft
    ListView1.ColumnHeaders.Add , , "Prix Location", ListView1.Width * 0.13, lvwColumnLeft
    ListView1.ColumnHeaders.Add , , "Total", ListView1.Width * 0.08, lvwColumnRight
    ListView1.ColumnHeaders.Add , , "Caution", ListView1.Width * 0.1, lvwColumnCenter
     
     
    With Me.ListView1
        .ListItems.Clear
        For Each V In ShBarbeuc.Range("A4:A" & ShBarbeuc.Cells(Rows.Count, "A").End(xlUp).Row)
            'Ici on controle que le mois inscrit dans la tableau Excel correspond bien au moi choisi
            'Si aucun moi n'a été choisi, on inscrit toutes les données
            'On passe les valeur en majuscule Ucase) pour ne pas etre dérangé par les majuscule en début de nom
            'Décembre n'est pas égale à décembre
            If (UCase(V.Text) = UCase(ComboBox1.Text)) Or (ComboBox1.Text = "Tous les mois") Then
                'On ajoute une ligne
                With .ListItems.Add(, , V.Text)
                    .ForeColor = V.Font.Color
                    For j = 1 To 8
                        .ListSubItems.Add , , V.Offset(0, j).Text
                        .ListSubItems(j).ForeColor = V.Offset(0, j).Font.Color
                    Next j
                End With
                'On calcul le total
                Total = Total + CDbl(V.Offset(0, 6))
            End If
        Next V
    End With
     
    'On place Total dans le TExtbox1
    TextBox1.Text = CStr(Total)
        Application.ScreenUpdating = True
    End Sub
    cris

  2. #2
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 87
    Par défaut
    Bonjour Chris,

    D'après ce que j'ai lu, Total n'est pas une case mais un "double", résultat d'un calcul.

    Soit tu dis que Total est une case et donc tu dis que sa valeur est égale à 0 quand une autre case est vide.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    If Range("B2").value = "" then
        Range("B4") = 0
    End if
    Total = Range("B4").value

    Soit tu initialises Total à 0 si une condition est vraie (ici, si une autre valeur de case est vide). Dan ce cas, le total n'est pas visible dans ta feuille Excel.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If Range("B2").value = "" then
        Total = 0
    End if

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

Discussions similaires

  1. amelioration de code pour eviter select
    Par bosk1000 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/07/2009, 20h26
  2. comment ameliorer ce code?
    Par chrisl0 dans le forum Langage
    Réponses: 1
    Dernier message: 26/02/2009, 02h29
  3. [VBA-E] Amelioration dun code
    Par Elstak dans le forum Macros et VBA Excel
    Réponses: 28
    Dernier message: 06/06/2007, 13h51
  4. amelioration de code
    Par deubelte dans le forum C++
    Réponses: 17
    Dernier message: 21/01/2007, 21h19
  5. amelioration de code
    Par deubelte dans le forum C++
    Réponses: 18
    Dernier message: 27/12/2006, 14h31

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