Fonction si

je n'arrive pas à réaliser une macro.

je travaille sur une gestion de base de données. Dans une colonne de ma base de donnée se trouve un équiv.

je veux que quand dans cette colonne équiv un chiffre apparaît, que une macro me mette dans la colonne de à cöter apparaisse un M or je n'y arrive pas. Voici mon début de macro qui ne marche pas.. :

Sub ColM()

Dim ColM As Integer

Sheets("Modif Devis").Select

ColM = MsgBox("Voulez-vous modifier ce devis ?", vbYesNo)

If ActiveCell.Offset(0, 1).Value = IsError Then

Sheets("BDD devis Détail").Select

Ranges ("j:j")

ActiveCell = "M"

Else

ActiveCell.Offset(1#).Value

MsgBox ("Opération annulée")

End If

End Sub

j'ai modifier ma macro mais elle ne fonctionne toujours pas ou est mon erreur ..?

Sub ColM()

Dim ColM As Integer

Sheets("Modif Devis").Select

ColM = MsgBox("Voulez-vous modifier ce devis ?", vbYesNo)

If Not IsError("I2") Then

ActiveCell.Offset(0, 1).Select

Sheets("BDD devis Détail").Select

Sheets("j:j").ActiveCell = "M"

Else

ActiveCell.Offset(1#).Select

MsgBox ("Opération annulée")

End If

End Sub

Bonjour,

Dans une colonne de ma base de donnée se trouve un équiv.

Tout d'abords, est ce que dans cette colonne il y a plusieurs cellule qui ont une fonction EQUIV() ?

oui dans ma colonne i toutes les cellules ne sont que des équiv qui me mettent des chiffre si ces valeurs sont utiliser actuellement et si non il y a #n/a. et je veux donc mettre un M dans la colonne j quand la ligne est utiliser mais si je met un formule directement dans la colonne ma macro qui viens après ne fonctionne pas donc il faut que je passe par une macro pour que le M reste quand ces lignes ne sont plus utiliser.

Je vois que tu passes d'une feuille à l'autre ("Modif Devis" et "BDD devis Détail", je ne parle pas de Sheets("j:j").ActiveCell = "M" car je suppose que c'est une erreur) c'est laquelle qui a les fonctions EQUIV() ?

C'est la BDD détail devis qui à la fonction équiv mais elle est en interaction avec la feuille Modif devis

Tu veux que ça se fasse en automatique ou tu veux lancer manuellement la procédure ?

non la lancer manuellement

roxane12 a écrit :

oui dans ma colonne i toutes les cellules ne sont que des équiv qui me mettent des chiffre si ces valeurs sont utiliser actuellement et si non il y a #n/a. et je veux donc mettre un M dans la colonne j quand la ligne est utiliser mais si je met un formule directement dans la colonne ma macro qui viens après ne fonctionne pas donc il faut que je passe par une macro pour que le M reste quand ces lignes ne sont plus utiliser.

Et pourquoi donc ?

car après je veux supprimer ces lignes. mais j'ai besoin de garder les informations elles ne sont supprimer de suite.

c'est pour ca que j'ai une macro qui me supprimer les ligne avec le M qui arrive que apres

Test ça :

Sub ColM()

    Dim Fe As Worksheet
    Dim Cel As Range

    If MsgBox("Voulez-vous modifier ce devis ?", vbYesNo) = vbNo Then Exit Sub

    Set Fe = Worksheets("BDD devis Détail")

    For Each Cel In Fe.Range("I:I").Cells.SpecialCells(xlCellTypeFormulas)

        If Not IsError(Cel) Then Cel.Offset(, 1).Value = "M" Else Cel.Offset(, 1).Value = ""

    Next Cel

End Sub

Voici la macro qui est exécuter après avec un autre bouton :

Sub supprimer_lignes()

With Sheets("BDD devis Détail")

For I = .Range("J" & .Rows.Count).End(xlUp).Row To 2 Step -1

If .Range("J" & I).Value = "M" Then .Rows(I).Delete

Next

End With

End Sub

un peu d'aide s'il vous plais je n'arrive pas a me débloquer ....

je veux creer une procédure qui s'exécute quand je clic sur un bouton qui me met des "M" dans la colonne j de ma feuille excel si dans la colonne "i" il y a autre chose que #n/a ...

merci

j'ai essayer cette macro mais ça ne marche toujours pas ..

Sub ColM()

Dim ColM As Integer

ColM = MsgBox("Voulez-vous modifier ce devis ?", vbYesNo)

Sheets("BDD devis Détail").Select

If Not IsError("I2") Then

ActiveCell.Offset(0, 1).Select

Sheets("BDD devis Détail").Select

Range("j2").Activate = "M"

Else

ActiveCell.Offset(1#).Select

MsgBox ("Opération annulée")

End If

End Sub

Bonjour,

As-tu seulement pris la peine de tester mon code ?

Quelques commentaires dans ton code :

Sub ColM()

Dim ColM As Integer

'ici, une variable reçois le retour de la boite de message et après elle n'est pas utilisée
'que la réponse soit Oui ou Non, le code qui suit sera tout de même exécuté !
ColM = MsgBox("Voulez-vous modifier ce devis ?", vbYesNo)

Sheets("BDD devis Détail").Select

If Not IsError("I2") Then
ActiveCell.Offset(0, 1).Select
Sheets("BDD devis Détail").Select '<-- elle a déjà été sélectionné plus haut !
Range("j2").Activate = "M" '<-- ça ne veux rien dire ! C'est --> Range("j2").Value = "M"

Else
ActiveCell.Offset(1#).Select 'et ça sert à quoi de sélectionner la cellule en dessous alors que le code prend fin ?
MsgBox ("Opération annulée")
End If

End Sub
Rechercher des sujets similaires à "fonction"