macro pour décaler des cellules vers le bas si condition

oyanka

XLDnaute Nouveau
Bonsoir,
ça fait des heures que je tourne en rond sur mon problème, mais je ne suis décidément pas douée pour les boucles... :mad:
voilà, j'ai besoin d'une macro qui décale vers le bas les cellules C et D d'une ligne à chaque fois que A et C de cette même ligne sont différentes (ci-joint fichier).
Merci d'avance pour votre aide !
 

Pièces jointes

  • test.xlsm
    17.6 KB · Affichages: 74
  • test.xlsm
    17.6 KB · Affichages: 74
  • test.xlsm
    17.6 KB · Affichages: 76

Paritec

XLDnaute Barbatruc
Re : macro pour décaler des cellules vers le bas si condition

bonsoir oyanka le forum
ton fichier c'est quoi? c'est pour faire quoi? comment ? et ou? et pourquoi? il n'y a rien d'indiqué sur ce que tu souhaites obtenir deux tableaux dans la feuille 1 et un tableau dans le deux mais la relation a faire là ???????????????,,
alors explique ce que tu veux et on va faire
a+
papou:eek:
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : macro pour décaler des cellules vers le bas si condition

Bonsoir oyanka et bienvenu :)

En interprétation libre et en attendant les éclaircissements demandés par Paritec (que je salue) un essai de quelque chose dans le fichier joint sans VBA. Les formules sont dans les colonnes F à I de la feuille "Feuil1".
 

Pièces jointes

  • macro pour décaler des cellules vers le bas si condition v1.xlsm
    17.6 KB · Affichages: 128

Paritec

XLDnaute Barbatruc
Re : macro pour décaler des cellules vers le bas si condition

Re Mapomme:eek: le forum
bah oui que tu as tout compris je ne voyais pas la finalité de ces deux tableaux, mais là ok
par contre si il y a des doublons dans la colonne A là??? enfin a suivre
mais l'énoncé aurait pu être "" comparer les colonnes AB aux colonnes CD de la feuille 1"" la notion d'ajout de ligne?????
a+
papou
 

oyanka

XLDnaute Nouveau
Re : macro pour décaler des cellules vers le bas si condition

Bsr papou & mapomme, et les autres

Merci pour vos solutions, malheureusement ce n'est pas vraiment ce que je recherche ; mais là c'est ma faute vu la formulation de ma demande... Désolée

Il me faut vraiment une macro (pas des formules) , qui va d'ailleurs s'intercaler entre d'autres que j'ai réussi à bidouiller.

Au départ, j'ai un premier tableau T1 issu d'une extraction de données SAP ; sur nouveau fichier joint : colonne A pour ref & colonne B pour qté.
Qqes heures + tard, je fais une 2nde extraction dans un tableau T2 (colonne C pour ref & colonne D pour qté). Là, les données ont évolué.
Je colle les 2 tableaux l'un à côté de l'autre et j'ai besoin de repérer quelles ref ont été supprimées/gardées (insérer des cellules vides en C et D quand ref en A<> ref en C), et si les qtés ont été modifiées. C'est sur la partie insertion que je bloque !

J' espère que le nouveau fichier sera + explicite, avec en feuille 1 ce que j'ai, et en feuille 2 ce que je voudrais obtenir selon critères (les couleurs sont juste pour repérer, mais pas à intégrer dans la macro).

Encore merci
 

Pièces jointes

  • testm.xls
    37.5 KB · Affichages: 74
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : macro pour décaler des cellules vers le bas si condition

Bonsoir oyanka,

Un essai de comparaison de deux colonnes:
Code:
Sub Comparer()
Dim nLig1 As Long, nLig2 As Long, i As Long

Application.ScreenUpdating = False
'effacement colonne E
Columns("e").ClearContents

'tri colonne A et B
nLig1 = Cells(Rows.Count, "a").End(xlUp).Row
Range(Cells(2, "a"), Cells(nLig1, "b")).Sort key1:=Columns("a"), Header:=xlNo
'tri colonne C et D
nLig2 = Cells(Rows.Count, "c").End(xlUp).Row
Range(Cells(2, "c"), Cells(nLig2, "d")).Sort key1:=Columns("c"), Header:=xlNo

'comparaison colonne A et B
i = 2
Do While Cells(i, "a") <> "" And Cells(i, "c") <> ""
If Cells(i, "a") < Cells(i, "c") Then
  Cells(i, "c").Resize(, 2).Insert xlShiftDown
ElseIf Cells(i, "a") > Cells(i, "c") Then
  Cells(i, "a").Resize(, 2).Insert xlShiftDown
End If
i = i + 1
Loop

'Marquage différence ou non
nLig1 = Cells(Rows.Count, "a").End(xlUp).Row
nLig2 = Cells(Rows.Count, "c").End(xlUp).Row
If nLig2 > nLig1 Then nLig1 = nLig2
For i = 2 To nLig1
  If Cells(i, "b") <> Cells(i, "d") Then Cells(i, "e") = "diff"
Next i

Application.ScreenUpdating = True
End Sub
 

Pièces jointes

  • Comparer deux colonnes v2.xlsm
    21.5 KB · Affichages: 121
Dernière édition:

oyanka

XLDnaute Nouveau
Re : macro pour décaler des cellules vers le bas si condition

:D :D :D
Génial, ça marche ! mapomme, tu m'enlèves une sacrée épine du pied !
Je crois que j'étais tellement "traumatisée" par ces sacrées boucles que j'en ai zappé l'étape tri...
Aujourd'hui j'ai integré ton code (après rectif de mes précédents et ultérieurs critères de tri) et ça tourne sans aucun problème !
Merci encore, surtout pour ta persévérence ;-)
:cool:
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 949
Membres
103 989
dernier inscrit
jralonso