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 :

VBA pour transférer des valeurs d'un tableau à l'autre [XL-2013]


Sujet :

Macros et VBA Excel

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Canada

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Avril 2018
    Messages : 5
    Par défaut VBA pour transférer des valeurs d'un tableau à l'autre
    Bonjour,

    J'ai écrit ce petit VBA qui permet de transférer des valeurs d'un compte à l'autre.

    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
     
    Option Explicit
     
    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim chqLR As Long, savLR As Long, celLR As Long, marLR As Long
     
     
    If Target.Row < 6 Or Target.Row > 102 Then Exit Sub
    If Target.Column <> 7 And Target.Column <> 9 And Target.Column <> 19 And Target.Column <> 21 Then Exit Sub
     
    Application.EnableEvents = False
     
    chqLR = Range("C" & 102).End(xlUp).Row
    savLR = Range("Q" & 102).End(xlUp).Row
    celLR = Range("AC" & 102).End(xlUp).Row
    marLR = Range("AO" & 102).End(xlUp).Row
     
    If Target.Column = 7 Or Target.Column = 9 Then
        If UCase(Range("G" & Target.Row)) = UCase("Virement Chèque-Épargne") _
           And Range("I" & Target.Row) <> "" Then
                Range("Q" & savLR + 1) = Range("C" & Target.Row)
                Range("S" & savLR + 1) = Range("G" & Target.Row)
                Range("W" & savLR + 1) = Range("i" & Target.Row)
        End If
    End If
     
    If Target.Column = 19 Or Target.Column = 21 Then
        If UCase(Range("S" & Target.Row)) = UCase("Virement Épargne-Chèque") _
           And Range("U" & Target.Row) <> "" Then
                Range("C" & chqLR + 1) = Range("Q" & Target.Row)
                Range("G" & chqLR + 1) = Range("S" & Target.Row)
                Range("K" & chqLR + 1) = Range("U" & Target.Row)
        End If
    End If
     
    If Target.Column = 7 Or Target.Column = 9 Then
        If UCase(Range("G" & Target.Row)) = UCase("Virement Chèque-Céli") _
           And Range("I" & Target.Row) <> "" Then
                Range("AC" & celLR + 1) = Range("C" & Target.Row)
                Range("AE" & celLR + 1) = Range("G" & Target.Row)
                Range("AI" & celLR + 1) = Range("I" & Target.Row)
        End If
    End If
     
    If Target.Column = 31 Or Target.Column = 33 Then
        If UCase(Range("AE" & Target.Row)) = UCase("Virement Céli-Chèque") _
           And Range("AG" & Target.Row) <> "" Then
                Range("C" & chqLR + 1) = Range("AC" & Target.Row)
                Range("G" & chqLR + 1) = Range("AE" & Target.Row)
                Range("K" & chqLR + 1) = Range("AG" & Target.Row)
        End If
    End If
     
    If Target.Column = 7 Or Target.Column = 9 Then
        If UCase(Range("G" & Target.Row)) = UCase("Virement Chèque-Marge") _
           And Range("I" & Target.Row) <> "" Then
                Range("AO" & celLR + 1) = Range("C" & Target.Row)
                Range("AQ" & celLR + 1) = Range("G" & Target.Row)
                Range("AU" & celLR + 1) = Range("i" & Target.Row)
        End If
    End If
     
    If Target.Column = 43 Or Target.Column = 45 Then
        If UCase(Range("AQ" & Target.Row)) = UCase("Virement Marge-Chèque") _
           And Range("AS" & Target.Row) <> "" Then
                Range("C" & marLR + 1) = Range("AO" & Target.Row)
                Range("G" & marLR + 1) = Range("AQ" & Target.Row)
                Range("K" & marLR + 1) = Range("AS" & Target.Row)
        End If
    End If
     
    Application.EnableEvents = True
    End Sub
    Le problème que je ne comprends pas c'est :
    Pourquoi est-ce ce que j'arrive à transférer des valeurs de compte chèque à Épargne, vice versa mais je peux que transférer des valeurs du compte chèque à Céli et compte chèque à Marge et pas le contraire, soit Céli à Chèque et Marge à Chèque ?

    Aussi, deuxième question :
    Pourquoi les premières valeurs inscrites dans Marge de crédit apparaissent dans AO9 au lieu de AO7 ?

    Merci pour vos réponse. Ce projet est important pour moi.

    Camaalot
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/02/2017, 16h56
  2. [XL-2010] [Créer une VBA pour chercher des valeurs]
    Par nat8546 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 24/06/2016, 15h53
  3. [XL-2000] VBA pour sommer des valeures entre deux dates (nombreuses données)
    Par maxhor dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/04/2014, 17h30
  4. Code VBA pour filtrer des valeurs dans un tcd
    Par dimitri70 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 25/09/2013, 10h53
  5. Problème pour forcer des valeurs d'un tableau
    Par n][co dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 25/04/2007, 20h59

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