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 :

Comparaison de plages & réécriture automatique de ligne


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
    Inscrit en
    Février 2014
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Février 2014
    Messages : 1
    Par défaut Comparaison de plages & réécriture automatique de ligne
    Bonjour,

    Je suis débutant en programmation VBA, et je souhaite traiter un fichier d'environ 2500 lignes.
    J'ai 3 colonnes : B,C,D
    (700 lignes pour la colonne D et 2500 pour B,C)
    Pour chaque valeur de la colonne D, je veux la retrouver dans la colonne C, puis réécrire la ligne B,C,D séparement du tableau initial (dans une autre feuille?)
    En conclusion :
    Pour chaque D(i), je cherche le C(j) correspondant et je recopie dans un nouveau tableau le B(j),C(j) et D(i)
    J'ai commencé ce code mais je ne sais pas comment écrire des lignes automatiquement :

    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 Compare()
     
    'déclaration des variables
      Dim i As Integer
      Dim j As Integer
      Dim plage1 As Range
      Dim plage2 As Range
      Dim plage3 As Range
     
    'Definition plage de cellules en memoire pour vitesse execution
      Set plage1 = Range("B2:B" & Range("B2").End(xlDown).Row)
      Set plage2 = Range("C2:C" & Range("C2").End(xlDown).Row)
      Set plage3 = Range("D2:D" & Range("D2").End(xlDown).Row)
     
        For i = plage3.Cells.Count To 2 Step -1
     
            For j = plage2.Cells.Count To 2 Step -1
     
                If plage2.Cells(j).Value = plage3.Cells(i).Value Then
                'réécrire sur la meme ligne B(j) , C(j) et D(i) si D(i)=C(j)pour un i donné dans une nouveau fichier, comment faire ?
     
                End If
     
            Next j
     
        Next i
     
    End Sub
    Je remercie d'avance ceux qui voudront bien m'aider, sinon je vais me devoir me taper tout ça à la main

    edit : j'ai essayé de coder par contraposée mais ca me donne un fichier erroné, qui me supprime même des lignes de la colonne ou rien n'est sensé se passer

  2. #2
    Expert éminent
    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
    Par défaut

    Bonjour,

    consulter l'aide et l'exemple de la méthode Find pour rechercher les C correspondants aux D

Discussions similaires

  1. insertion automatique de lignes dans la crontab
    Par Mr_Brown dans le forum Administration système
    Réponses: 2
    Dernier message: 27/03/2007, 15h03
  2. Réponses: 11
    Dernier message: 10/03/2007, 03h01
  3. Formulaire numérotation automatique des lignes
    Par tomelo59 dans le forum IHM
    Réponses: 2
    Dernier message: 28/11/2006, 20h47
  4. [JTable] Numérotation automatique des lignes...
    Par lilou77 dans le forum Composants
    Réponses: 2
    Dernier message: 20/12/2005, 11h29
  5. Numérotation automatique de ligne
    Par jag2005 dans le forum Langage
    Réponses: 6
    Dernier message: 02/10/2005, 13h03

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