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

Excel Discussion :

reecriture d'une feuille à partir de deux feuilles et d'une table de correspondance


Sujet :

Excel

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Ingenieur environnement
    Inscrit en
    Mai 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingenieur environnement
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2014
    Messages : 10
    Points : 5
    Points
    5
    Par défaut reecriture d'une feuille à partir de deux feuilles et d'une table de correspondance
    Bonjour,

    j'ai, d'un côté une feuille "S0" avec dans les trois premières colonnes, ce qui concaténé, sert d'identifiant PK.
    d'un autre coté, j'ai une autre feuille, S2 du meme format.

    A partir de ces deux feuilles, je veux constituer une troisième feuille en alternant les S0 et les S2 en fonction pour les lignes qui on un PK qui figure dans une table de correspondance (4 ieme feuille "conversion").


    J'ai utilisé une macro VBA mais je n'arrive pas à lire
    conv_flag = Sheets("lut").Cells(i + 1, 3).Value 'lit le code pour déterminer si la ligne va etre en S2

    nblignes_S0 = 0
    iii = 1
    xx = 0
    While Sheets("S0").Cells(iii + 1, 1).Value > 0
    xx = Sheets("S0").Cells(iii + 1, 1).Value
    nblignes_S0 = nblignes_S0 + 1
    iii = iii + 1
    Wend


    nblignes_S0 = nblignes_S0 - 1
    nb_li = 0 'nombre de lignes en sortie
    MsgBox (Str(nblignes_S0))

    nblignes_S2 = 0
    iiii = 1
    xxx = 0
    While Sheets("mgt2_S2").Cells(iiii + 1, 1).Value > 0
    xxx = Sheets("mgt2_S2").Cells(iiii + 1, 1).Value
    nblignes_S2 = nblignes_S2 + 1
    iiii = iiii + 1
    Wend
    nblignes_S2 = nblignes_S2 - 1
    nb_li = 0 'nombre de lignes du mgt2 en sortie
    MsgBox (Str(nblignes_S2))


    'conv_flag = Sheets("S3").Cells(i + 1, 3).Value 'pour déterminer si la ligne va etre en S2
    For a = 1 To nblignes_S2
    conv_flag = Sheets("S3").Cells(i + 1, 3).Value
    If conv_flag = 1 Then

    PK(a, conv_flag) = Trim(v1 & "-" &v2 & "-" & v3) & conv_flag
    For j = 1 To 67
    Sheets("S3").Cells(a + 1, j + 0).Value = Sheets("mgt2_S2").Cells(a + 1, j + 0).Value
    Next j

    Sheets("S3").Cells(a + 1, 18).Value = Sheets("mgt2_S2").Cells(a + 1, 18).Value
    Sheets("S3").Cells(a + 1, 4).Value = Sheets("mgt2_S2").Cells(a + 1, 4).Value
    Sheets("S3").Cells(a + 1, 10).Value = Sheets("mgt2_S2").Cells(a + 1, 4).Value

    End If

    If conv_flag = 0 Then 'cas du flag =0 -> la ligne n'est pas à convertir et on doit recopier les lignes du S0

    For b = 1 To nblignes_S0
    For jj = 1 To 67
    PK(b, conv_flag) = Trim(sbv & "-" & HRU) & conv_flag
    Sheets("S3").Cells(b + 1, jj + 0).Value = Sheets("S0").Cells(b + 1, jj + 0).Value
    Next jj
    Sheets("S3").Cells(b + 1, 18).Value = Sheets("S0").Cells(b + 1, 18).Value
    Sheets("S3").Cells(b + 1, 4).Value = Sheets("S0").Cells(b + 1, 4).Value
    Sheets("S3").Cells(b + 1, 10).Value = Sheets("S0").Cells(b + 1, 4).Value 'sol SWAT
    Next b
    End If ' de conv_flag

    Next a
    Sheets("S3").Rows(1).Value = Sheets("mgt2_ligne1").Rows(1).Value

    J'arrive à lire le flag dans la feuille lut, qui indique ce qui doit etre recopié en S0 ou bien en S2 mais je n'arrive pas a copier séquentiellement les lignes S0 à la suite des lignes en S2 dans la feuille S3.

    Merci d'avance
    Aude

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Bonjour,

    merci de déplacer la discussion dans le bon forum et de baliser le code
    mettant ainsi plus de chances de votre côté afin d'obtenir une réponse …

    Sinon l'utilisation d'un filtre (exemple ici) ou d'un filtre avancé me semble un peu plus appropriée.

Discussions similaires

  1. Réponses: 6
    Dernier message: 30/07/2014, 09h43
  2. Réponses: 9
    Dernier message: 26/05/2014, 17h55
  3. [XL-2003] Comparer deux feuilles et copier les valeurs équivalentes sur une troisième
    Par Julzz dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/08/2011, 14h02
  4. [XL-2003] la différence entre les lignes des deux feuilles dans la premiere ligne vide d'une des deux
    Par safouunette dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/11/2010, 10h20
  5. activer une feuille à partir de son nom ou d'une valeur de cellule
    Par rom05 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/04/2008, 17h58

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