Décalage rapide de lignes - Excel

Fermé
thelvy Messages postés 5 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 12 octobre 2009 - 13 mai 2008 à 10:18
 thelvy - 15 mai 2008 à 10:53
Bonjour,

Ma question est certainement très basique, mais une solution valide me ferait gagner beaucoup de temps.
Je ne suis pas vraiment performant en macros excel...

Pour faire simple, j'ai effectuer une petite fusion entre deux fichier excel.
La donnée commune à ma fusion est un code produit.

Jai donc trié mes colonnes par code produit dans le fichier A et le fichier B.
Après un petit copier collé, je me retrouve donc avec mon onglet qui contient les données de mes fichiers A et B.

Cependant les deux fichiers ont de nombreuses références qui ne figurent pas dans l'autre fichier (exemple : référence présente dans fichier A et pas dans fichier B et vice versa)

Pour les distinguer, j'ai créé une colonne avec la formule =(A154=AD154) qui correspond à mes colonnes de codes produits. Ainsi je peux repérer les codes différents car "FAUX" et "VRAI" s'affichent grace à la formule.

Il me faut maintenant supprimer toutes mes lignes "FAUX" pour ne garder que les lignes présentes dans A et dans B.Les lignes doivent bien entendu se décaler vers le haut au fur et à mesure...

Manuellement c'est impossible car mon fichier possède plus de 10 000 lignes.

Quelqu'un aurait un petit programme à me proposer ?

Merci beaucoup pour votre réponse rapide
A voir également:

6 réponses

fl0 Messages postés 357 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 10 novembre 2021 209
13 mai 2008 à 10:35
salut

c'est pas tous a fait ce que tu veu mais c'est un debut

je regarde si la cellule (l i c j) contient "FAUX" et si c'est le cas
je supprime le contenu de la cellule
tous ca dans une boucle bien sur
tu à juste à trouvé comment faire pour supprimé carément la cellule et non son contenu
comme on dit chez moi "y a qu'a il faut"


for i=0 to 10000
for j =0 to 10000
If ActiveSheet.cells(i, j).value = "FAUX" Then
cells(i, j).Clear
end if
Next
Next
0
zavenger Messages postés 811 Date d'inscription vendredi 29 février 2008 Statut Membre Dernière intervention 20 avril 2012 161
13 mai 2008 à 10:35
Salut,

Tu peux faire une macro vba, mais pourquoi ne pas trier ta feuille sur la colonne vrai/faux et du coup, tu peux selectionner facilement tous tes "Faux"
0
thelvy Messages postés 5 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 12 octobre 2009
13 mai 2008 à 12:34
Merci pour vos réponses super rapides.

@ Zavenger:

macro vba ou macro excel, je suis incompétent dans les 2 cas.
Quand à classer les vrais et faux puis supprimer les faux c'est impossible car dès qu'il y a un faux, tout est décalé et les suivants deviennent systématiquement FAUX à leur tour. C'est balo comme on dit chez moi ...

@ FL0:

Merci pour cette proposition.
Effectivement l'objectif est d'effectuer le décalage vers le haut à chaque fois, car d'autres colonnes avec d'autres infos (prix, infos diverses...) découlent de mes fameuses colonnes "codes produits". Ces autres colonnes sont adjacentes aux colonnes "codes produits".

A noter également que si j'effectue le tri et la suppression manuellement, il me faut à chaque fois rafraichir mes formules en les tirant vers le bas. (en clair : J'ai une colonne FAUX / Je supprime les cellules qui ne m'interessent pas et fait remonter les bonnes cellules à la bonne hauteur, et après validation FAUX est toujours affiché / Je tire ma formule dans les cellules supérieures, et elle se transforme en VRAI )

L'idée serait donc de faire tout cela automatiquement.
Merci beaucoup pour votre contribution.
0
zavenger Messages postés 811 Date d'inscription vendredi 29 février 2008 Statut Membre Dernière intervention 20 avril 2012 161
13 mai 2008 à 13:30
voici une macro vba qui spprime les lignes en fonction de la valeur d'une cellule

Sub supprime()
Dim lig As Double
For lig = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1
if Cells(lig, 3).Value ="FAUX" then
Rows(lig).Delete
Endif
Next lig
End Sub

en l'occurence la colonne C (3)
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
13 mai 2008 à 13:35
Bonjour,
Suis pas sûr qu'il faut mettre "FAUX" entre guillemets, c'est une valeur booléenne.
A+
0
fl0 Messages postés 357 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 10 novembre 2021 209 > lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020
13 mai 2008 à 13:39
moi je pense car on veut vérifier le contenu de la cellule en Q° Mais bonne remarque si ca ne marche pas le diagnostique pourra etre tres rapide
a+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fl0 Messages postés 357 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 10 novembre 2021 209
13 mai 2008 à 13:38
j'ai besoin de quelque precision

quand tu as une cellule (faux) c'est a cause de quoi? le contenu des cellule à coté (gauche et droite ne convient pas ??)
donne nous ta formule ca serai cool
parceque la javance dans le noir
et dit nous si tu veut juste remonté la colonne ou ta cellule est mauvaise ou si tu veut tous décallé (d'une ligne)
dans quel cas la macro de zavenger est pas mal
0
Merci à tous mais vous pouvez laisser refroidir vos matières grises.

Ma chef m'a conseillé d'abandonner ma méthode et de privilégier l'outil recherchev.

Et en effet c'est moins casse tête.

Merci pour tout
0