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 :

lettrage sur excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Janvier 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Janvier 2015
    Messages : 2
    Par défaut lettrage sur excel
    bonjour,
    je veux faire du lettrage sur excel veux dire :
    j'ai un tableaux
    colonne A : date
    colonne B : N° facture
    colonne C : montants
    colonne D: réglements
    sachant qu'une seul facture peut etre réglé 2 ou trois fois ou quatre ou...
    je veux écrire une macro qui me revoie les numéros des factures qui sont réglé et les numéro des facture qui ne le sont pas dans la colonne E N° facture réglé
    et dans la colonne F le N° des factures non réglé.
    merci ;

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Par défaut
    Bonjour,

    Peut-être quelquechose du style (testé rapidement), en supposant que les sous-totaux soient décallés d'une ligne et à adapter:

    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
    Sub Update_Somme()
    Dim SrcRng As Range, cl As Range
    Dim ClCnt As Integer
    Dim SomCl As Single
     
    Set SrcRng = ThisWorkbook.Worksheets(1).UsedRange.Columns(1)
    Debug.Print SrcRng.Address, Worksheets(1).Name
     
    For Each cl In SrcRng.Cells
     
        If Not (IsEmpty(cl)) Then
            SomCl = SomCl + cl.Value
            ClCnt = ClCnt + 1
        Else:
            If SomCl = cl.Offset(0, 1).Value Then
     
                Range(cl.Offset(-1, 0), cl.Offset(ClCnt * -1, 0)).Value = 0
                cl.Offset(0, 1).Value = 0
                SomCl = 0
                ClCnt = 0
     
            End If
     
        End If
     
    Next cl
     
    End Sub

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Teste ce code et adpate :
    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
     
    Sub Somme()
     
        Dim Plage As Range
        Dim CelDepart As Range
        Dim Cel As Range
        Dim CelTotal As Range
        Dim Total As Double
     
        With Worksheets("PB")
     
            'de A5 à A?
            Set Plage = .Range(.Cells(5, 1), .Cells(.Rows.Count, 1).End(xlUp))
     
        End With
     
        'première cellule de la plage pour l'inscription du zéro (point de départ, sera redéfinie plus bas)
        Set CelDepart = Plage.Cells(1, 1)
     
        For Each Cel In Plage
     
            'si numérique ou non vide, totalise
            If IsNumeric(Cel.Value) And Cel.Value <> "" Then Total = Total + Cel.Value
     
            'si le total est différent de 0, effectue la recherche de la somme dans la colonne B
            If Total <> 0 Then Set CelTotal = Plage.Offset(, 1).Find(Total, , xlValues, xlWhole)
     
            'si trouvé, mets à 0...
            If Not CelTotal Is Nothing Then
     
                CelTotal.Value = 0
                Total = 0
                Range(CelDepart, Cel).Value = 0
     
                Set CelTotal = Nothing
     
            End If
     
            'si on rencontre une cellule vide, on redémarre pour une autre plage
            If Cel.Value = "" Then
     
                Total = 0
                Set CelDepart = Cel.Offset(1, 0)
     
            End If
     
        Next Cel
     
    End Sub
    Hervé.

  4. #4
    Nouveau candidat au Club
    Femme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Janvier 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Janvier 2015
    Messages : 2
    Par défaut macro
    j'ai essayé votre code mais on me dit erreur d'incompatibilité de type

  5. #5
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Il faut exécuter le code en pas à pas (appuis successifs sur F8) et voir sur quelle ligne il s'arrête !

    Hervé.

Discussions similaires

  1. PAGE SUR EXCEL
    Par mavean dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 23/11/2005, 16h45
  2. probleme de selection aleatoire sur excel avec macro vba
    Par guillaume sors dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/10/2005, 11h51
  3. Export Texte sur Excel
    Par Damien1969 dans le forum Access
    Réponses: 1
    Dernier message: 06/10/2005, 14h17
  4. forcer date sans texte sur excel
    Par scully2501 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/09/2005, 14h45
  5. comment afficher des données Access sur Excel ??
    Par merlubreizh dans le forum Access
    Réponses: 9
    Dernier message: 14/09/2005, 15h38

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