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 liaison dynamique entre plusieurs feuilles


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 29
    Par défaut VBA liaison dynamique entre plusieurs feuilles
    Bonjour à tous,

    Voici mon soucis:

    J'ai un fichier excel avec plusieurs feuilles

    Tableau détaillé, tableau 24, tableau 33, etc etc

    Je souhaiterais faire une liaison dynamique, par exemple toutes les lignes commencant par 24 dans la colonne A de la feuille "tableau détaillé" dans la feuille "tableau 24".

    si j'ai ceci dans tableau détaillé:
    24114 A14 B28
    24257 B21 H25 G45
    24569 J24
    33254 J14 K12
    33289 K11
    33214 F68

    je dois avoir ceci dans tableau 24:
    24114 A14 B28
    24257 B21 H25 G45
    24569 J24

    et ceci dans tableau 33:
    33254 J14 K12
    33289 K11
    33214 F68

    Est ce possible d'obtenir une formule en vba pour faire ce travail?

    En vba car la feuille "tableau détaillé" est variable, donc toute modification effectuée sur celle ci doit se faire aussi dans les autres feuilles.

    Donc si je rajoute une ligne : 24657 J48 K14 par exemple dans la feuille "tableau détaillé", celle ci dans se mettre aussi automatiquement dans "tableau 24"

    Je ne sais pas si je suis clair dans mes propos

    je débute en vba mais je fais ceci en ce moment:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Tableau détaillé").Range("A1:A11").Copy Sheets("Tableau 24").Range("A1")
    donc je copie les plages de cellules, mais si je rajoute une ligne, alors je dois tout décaler car plus rien de correspond, normal!

    Je n'arrive pas a rajouter la condition:

    copier toutes les lignes commencant par 24 dans "tableau 24", ainsi de suite...

    Cordialement

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonsoir
    Une proposition
    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
    Option Explicit
     
    Sub Dispaching()
    Dim asht As Worksheet, sht As Worksheet
    Dim Lastlig As Long, i As Long
    Dim Kod As String
    Dim c As Range
     
    Application.ScreenUpdating = False
    Set asht = Sheets("Tableau détaillé")
       With asht
          Lastlig = .Cells(Rows.Count, "A").End(xlUp).Row
          For i = 2 To Lastlig
             Kod = Left(.Range("A" & i).Value, 2)
             On Error Resume Next
             Set sht = Sheets("Tableau " & Kod)
             On Error GoTo 0
             If sht Is Nothing Then
                Set sht = Sheets.Add(after:=Sheets(Sheets.Count))
                sht.Name = "Tableau " & Kod
                .Rows(1).Copy sht.Range("A1")
             End If
             Set c = sht.Columns("A:A").Find(.Range("A" & i).Value, LookIn:=xlValues, lookat:=xlWhole)
                If c Is Nothing Then .Rows(i).Copy sht.Cells(Rows.Count, "A").End(xlUp)(2)
             Set c = Nothing
             Set sht = Nothing
          Next i
       End With
    asht.Select
    Set asht = Nothing
    End Sub

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 29
    Par défaut
    Bonsoir et merci,

    Je viens de tester, cela créer toutes les feuilles des familles, c'est super.

    Par contre si je modifie une cellule ou je rajoute une ligne dans tableau détaillé, cela ne se met pas automatiquement dans l'autre feuille adéquate .

    Je relance l'execution mais ca ne m'écrase pas les feuilles.

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Comme j'ai compris, le code permet
    1. dispatcher les données en autant de feuilles (qui existent, sinon il les crée)
    2. si on ajoute des données, tu relance la macro, les nouvelles données se placeront en dernier dans la feuille correspondante.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 29
    Par défaut
    pour le 1) tout est ok.

    Pour le 2) :

    exemple:

    1ere ligne c'est


    11001 G21D



    si je modifie comme ceci dans tableau détaillé:


    11001 G21D H21A


    et que je relance la macro, ca ne rajoute pas H21A dans "tableau 11"

    par contre si je rajoute une ligne! la ca fonctionne c'est a dire


    11001 G21D
    11002 A25A


    Tableau 11 se met bien a jour dans cette condition

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    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
    Sub Dispaching()
    Dim asht As Worksheet, sht As Worksheet
    Dim Lastlig As Long, i As Long
    Dim Kod As String
    Dim c As Range
     
    Application.ScreenUpdating = False
    Set asht = Sheets("Tableau détaillé")
       With asht
          Lastlig = .Cells(Rows.Count, "A").End(xlUp).Row
          For i = 2 To Lastlig
             Kod = Left(.Range("A" & i).Value, 2)
             On Error Resume Next
             Set sht = Sheets("Tableau " & Kod)
             On Error GoTo 0
             If sht Is Nothing Then
                Set sht = Sheets.Add(after:=Sheets(Sheets.Count))
                sht.Name = "Tableau " & Kod
                .Rows(1).Copy sht.Range("A1")
             End If
             Set c = sht.Columns("A:A").Find(.Range("A" & i).Value, LookIn:=xlValues, lookat:=xlWhole)
                If c Is Nothing Then
                   .Rows(i).Copy sht.Cells(Rows.Count, "A").End(xlUp)(2)
                Else
                   .Rows(i).Copy c
                End If
             Set c = Nothing
             Set sht = Nothing
          Next i
       End With
    asht.Select
    Set asht = Nothing
    End Sub

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

Discussions similaires

  1. [Toutes versions] Liaison dynamique entre 2 feuilles
    Par anubisme dans le forum Conception
    Réponses: 7
    Dernier message: 24/02/2015, 16h10
  2. [XL-2003] tableau dynamique - source plusieurs feuilles
    Par tienne1 dans le forum Excel
    Réponses: 1
    Dernier message: 02/07/2009, 17h55
  3. [XL-2003] Liaison dynamique entre classeur
    Par elfyx dans le forum Excel
    Réponses: 1
    Dernier message: 02/04/2009, 15h04
  4. {VBA Excel}Recopie de plusieurs Feuilles
    Par Thomas69 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 29/06/2007, 14h27
  5. excel VBA comment recopier sur plusieurs feuilles
    Par floflo2006 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/11/2005, 15h56

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