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 :

Différence entre deux codes?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 111
    Par défaut Différence entre deux codes?
    Bonjour,

    J'ai les deux codes suivants:
    Seul le premier me donne le résultat attendu:
    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
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    If Target.Address = "$A$11" Then
        If Range("A11").Value <> "" Then
            Range("A103").Value = Range("A11").Value
        Else
            Range("A103").Value = "Néant"
        End If
    Sheets("Liste Matériel").Range("AO1:AU996").AdvancedFilter Action:= _
    xlFilterCopy, CriteriaRange:=Range("A102:G103"), CopyToRange:=Range( _
    "I102:O103"), Unique:=False
    Range("I103:O103").Select
    Selection.Copy
    Range("A11").Select
    ActiveSheet.Paste
    Range("I101:O103").Select
    Application.CutCopyMode = False
    Selection.ClearContents
    Range("A11").Select
    End If
     
    If Target.Address = "$A$12" Then
        If Range("A12").Value <> "" Then
            Range("A103").Value = Range("A12").Value
        Else
            Range("A103").Value = "Néant"
        End If
     
    Sheets("Liste Matériel").Range("AO1:AU996").AdvancedFilter Action:= _
    xlFilterCopy, CriteriaRange:=Range("A102:G103"), CopyToRange:=Range( _
    "I102:O103"), Unique:=False
     
    Range("I103:O103").Select
    Selection.Copy
    Range("A12").Select
    ActiveSheet.Paste
    Range("I101:O103").Select
    Application.CutCopyMode = False
    Selection.ClearContents
    Range("A12").Select
    End If
    Etant donné que je dois le répéter jusqu'à la cellule A99, je n'ai pas très envie de tout recopier et modifier pour chaque cellule.
    J'ai donc tenté avec des "i" mais ca ne marche pas...
    Quelqu'un saurait-il pourquoi?

    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
     
    Dim i As Integer
     
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    i = 11
        If Target.Address = "$A$" & i Then
            If Range("A" & i).Value <> "" Then
                Range("A103").Value = Range("A" & i).Value
            Else
                Range("A103").Value = "Néant"
            End If
     
        Sheets("Liste Matériel").Range("AO1:AU996").AdvancedFilter Action:= _
            xlFilterCopy, CriteriaRange:=Range("A102:G103"), CopyToRange:=Range( _
            "I102:O103"), Unique:=False
        Range("I103:O103").Select
        Selection.Copy
        Range("A" & i & ":G" & i).Select
        ActiveSheet.Paste
        Range("I101:O103").Select
        Application.CutCopyMode = False
        Selection.ClearContents
        Range("A" & i & ":G" & i).Select
        End If
     
     
    i = 12
        If Target.Address = "$A$" & i Then
            If Range("A" & i).Value <> "" Then
                Range("A103").Value = Range("A" & i).Value
            Else
                Range("A103").Value = "Néant"
            End If
     
        Sheets("Liste Matériel").Range("AO1:AU996").AdvancedFilter Action:= _
            xlFilterCopy, CriteriaRange:=Range("A102:G103"), CopyToRange:=Range( _
            "I102:O103"), Unique:=False
        Range("I103:O103").Select
        Selection.Copy
        Range("A" & i & ":G" & i).Select
        ActiveSheet.Paste
        Range("I101:O103").Select
        Application.CutCopyMode = False
        Selection.ClearContents
        Range("A" & i & ":G" & i).Select
        End If
     
    End Sub

  2. #2
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Essaye ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    If Not Application.Intersect(Target, Range("A11:A99")) Is Nothing Then
        If Target.Value <> "" Then
            Range("A103").Value = Target.Value
        Else
            Range("A103").Value = "Néant"
        End If
    End If

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 111
    Par défaut
    Cette partie là du code fonctionne bien...
    Le problème vient de plus loin...
    Il y a un méli mélo ds les cellules. C'est assez difficile à décrire!

  4. #4
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Pour le filtre je n'ai pas testé, pour la dernière partie du code, cela devrait ressembler à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range("I103:O103").Copy Range(Target.Address)
    Range("I101:O103").ClearContents

  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 111
    Par défaut
    Super!!
    En bidouillant un peu mon code et avec vos conseils, ca marche comme je voulais!!
    Un grand Merci!

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

Discussions similaires

  1. Différence entre deux codes
    Par wallace27 dans le forum VB.NET
    Réponses: 4
    Dernier message: 15/02/2015, 16h55
  2. Différence entre deux code
    Par anisprog_2008 dans le forum VB.NET
    Réponses: 0
    Dernier message: 28/10/2008, 12h42
  3. Différence entre deux dates
    Par pittzz dans le forum Oracle
    Réponses: 5
    Dernier message: 18/07/2005, 12h24
  4. Comment obtenir la différence entre deux dates ?
    Par jbat dans le forum Langage
    Réponses: 4
    Dernier message: 02/06/2005, 09h34
  5. Résultats erroné différence entre deux types TDateTime
    Par Alghero dans le forum C++Builder
    Réponses: 6
    Dernier message: 12/03/2004, 17h03

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