Vba excel macro soustraction de colones

Résolu/Fermé
rouzb - 13 janv. 2009 à 09:53
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 - 13 janv. 2009 à 14:44
Bonjour,

je cherche a creer une macro qui permette de soustraire 2 colonnes pour mettre le résultat dans une troisieme et par la suite supprimer les lignes dont le resultat de la soustraction est zero. Je ne sais absolument pas quoi faire ni par ou commencer..

Merci d'avance

7 réponses

Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 289
13 janv. 2009 à 12:44
Excuse-moi j'ai fait une erreur
ne tiens pas compte du code dans le post précédent
je suis désolé

celui là marche




Sub supprime_les_differences_nulle()
Dim Nblig As Integer
Dim C As Variant
Sheets("Feuil2").Select
Nblig = Range("C2").CurrentRegion.Rows.Count
' je suppose que les données commence en C2
'je vais sur la feuille 3
Sheets("Feuil3").Select
For Each C In Range("C2:C" & Nblig)
num_ligne = C.Row ' le numero de la ligne
C.Value = Sheets("feuil1").Cells(num_ligne, 3) - Sheets("feuil2").Cells(num_ligne, 3)
If C.Value = 0 Then

End If
Next
For i = 2 To Nblig
Cells(i, 3).Select
If ActiveCell.Value = 0 Then
ActiveCell.Select
Selection.EntireRow.Delete
i = i - 1
End If

Next
s = MsgBox("Fin du traitement", vbExclamation, "Suppression si difference à 0")


End Sub
2
oui ca marche merci bcp!
0
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 289
13 janv. 2009 à 14:44
Si cela te convient tu coches résolu
merci
2
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
13 janv. 2009 à 10:35
bonjour

Dans la troisième tu mets la formule =A1-B1
puis
if Cells(ligne,"C") = 0 then rows(ligne).delete
0
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 289
13 janv. 2009 à 10:36
Tout d'abord ce n'est pas très clair!

une macro qui permette de soustraire 2 colonnes
est-ce qu'il s'agit de deux cellules ou d'un ensemble de cellules
par exemple soustraire la cellule A8 et A9
et si A8-A9 = 0 alors supprimer A8 et A9

Explique un peu mieux ou bien donne un fichier d'exemple via ci-joint.com

A+
0
desole, je detaille :

j'ai dans ma feuille un bouton (controle de formulaire). En cliquant dessus, je veux qu'il effectue la soustraction de toutes les cellule de la colonne C de la feuille 1 par les cellules de la colonne C de la feuille 2, et qu'il mette le résultat dans la colonne C de la feuille 3 et que si le réultat est nul, il supprime la ligne entière dans la feuille 3. Par toutes les cellules, j'entends qu'il fasse : Feuil1!C2-'Feuil2'!C2, puis Feuil1!C3-'Feuil2'!C3, etc...

voila j'espere que c'est clair
0

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

Posez votre question
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 289
13 janv. 2009 à 11:17
Oui c'est plus clair!

Encore une question!
si
Feuil1!C2-'Feuil2'!C2=0 on doit supprimer la ligne 2:2 en feuil3
Est-ce vrai en feuille 1 et feuil2 ( je comprends que non, mais je préfère être sur)
0
tu as bien compris je ne veux supprimer les lignes que dans la feuille 3
0
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 289
13 janv. 2009 à 11:31
C'est en cours ..... je finis
0
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 289
13 janv. 2009 à 11:48
'tu places ce code dans un module
' attention si tu executes 2 fois le code fais attention
que la plage en sortie soit Vide




Sub supprime_les_differences_nulle()
Dim Nblig As Integer
Dim C As Variant
Sheets("Feuil2").Select
Nblig = Range("C2").CurrentRegion.Rows.Count
' je suppose que les données commence en C2
'je vais sur la feuille 3
Sheets("Feuil3").Select
For Each C In Range("C2:C" & Nblig)
num_ligne = C.Row ' le numero de la ligne
C.Value = Sheets("feuil1").Cells(num_ligne, 3) - Sheets("feuil2").Cells(num_ligne, 3)
If C.Value = 0 Then
Selection.EntireRow.Delete
End If


Next
s = MsgBox("Fin du traitement", vbExclamation, "Suppression si difference à 0")


End Sub


A+

N'oublie pas de mettre en résolu si cela te convient.
A+
R
0