Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Compléter une macro

pompaero

XLDnaute Impliqué
Bonjour le forum,

Ouaaah, bien la nouvelle présentation du site.

Ma demande serait de pouvoir compléter une macro, svp ?
Dans mon classeur onglet "Mvt absorbant" est effectué les mouvements (sortie, entrée) du produit afin de suivre son stock. Je suis arrivé à créer la macros d'enregistrement mais je bloque sur un petit délais.
Ce détail est juste avant l'enregistrement des données vers la BDD avoir une alerte qui annonce si les données existe déjà. J'ai bien commencé à trouver une macros qui est en couleur pour l'exemple,
VB:
  With Sheets("Mvt absorbant")
      'verification
      Ddate = CDate(.Range("C4").Value): Vehicule = .Range("C6").Value

      dlt = .Range("B" & Rows.Count).End(xlUp).Row
      For i = 12 To dlt
[COLOR=rgb(226, 80, 65)]         If .Range("B" & i) = Ddate And .Range("C" & i) = .Range("C5") And .Range("D" & i) = .Range("C7") _
         And .Range("E" & i) = Vehicule Then
            MsgBox "Ces données existe déjà !!"[/COLOR]
            Exit Sub
         End If
      Next i
      ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
      'controle si il y a toutes les informations
Ce que je n'arrive pas à faire est quand il s'agit de préciser si c'est une entrée ou une sortie par rapport aux colonnes F ou G.
En simple si on effectue une entrée avec des données déjà existantes alors Msg d'alerte ou idem pour une sortie.
Est-ce possible d'effectuer cela ?
Merci à vous.

Cdlt
pompaero
 

Pièces jointes

  • conso produit V0.xlsm
    957.8 KB · Affichages: 11

cathodique

XLDnaute Barbatruc
Bonjour Pompaero,

Tu rajoutes une variable pour la colonne. Enfin,si j'ai bien compris ta question.
VB:
dim col as byte
dlt = .Range("B" & Rows.Count).End(xlUp).Row
      For i = 12 To dlt
      col = IIf(.Range("E4") = "Entrée", 6, 7)
         If .Range("B" & i) = Ddate And .Range("C" & i) = .Range("C5") And .Range("D" & i) = .Range("C7") _
         And .Range("E" & i) = Vehicule And .Cells(i, col) = .Range("E5") Then
            MsgBox "Ces données existe déjà !!"
            Exit Sub
         End If
      Next i
Bonne journée.
 

pompaero

XLDnaute Impliqué
Bonjour cathodique, le fil, le forum,

Je te rassure , tu as très bien compris le sens de la question lol.
Effectivement, ta proposition fonctionne parfaitement comme attendu, grand merci à toi.

@ Bientôt.
Cordialement
pompaero.
 

Discussions similaires

Réponses
7
Affichages
370
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…