Aide VBA - Sauvegarder un ligne si 2 conditions sur une ligne sont OK

Talwayseb

XLDnaute Nouveau
Bonjour :D

Je n'y arrive pas....
Pourriez-vous m'aider ?
Merci pour votre aide !!! ;)

Le fichier est dispo ici : Free - Envoyez vos documents

Principe :
Sauvegarder un ligne de la feuille "En cours" vers la Feuille "BDD" si 2 conditions sur une ligne sont OK.
Les Conditions sont :
- Colonne A = 2
- Colonne AS = 1

Problème n°1 :
Des formules sont appliquées sur plusieurs colonnes :
- Colonne A
Code:
=SI($AG5="";"";SI(ET($AP5="Payé";AM5="Terminée";OU($AJ5="Perçu";$AJ5="Nondemandé");$AG5=1);2;SI($AG5<2;1;0)))
- Colonne AF
Code:
=SOMME($AA5;$AC5;$AE5)
- Colonne AL
Code:
=SI(OU($AK5="";$AK5="Non");"";AF5*$AK5)

Le fait de couper la ligne de la feuille "En cours" pour la coller dans la 1ere ligne vide de la Feuille "BDD" peut créer des discordances dans les formules.
Idem si tri.
Faire un équivalent en VBA qui palie aux problèmes.

Problème n°2 :
Est il possible de créer 2 listes déroulantes "Commune" + "Code Postal" indépendante l'une de l'autre ?
Si on renseigne la liste "Commune" => Afficher dans la liste "Code postal" les codes Postaux restant.
Si on renseigne la liste "Code Postal" => Afficher dans la liste "Commune" les communes restantes.

Problème n°3 :

Etape n°1
Appliquer une Action si 2 conditions sur une ligne

'Dans la feuille "En Cours",
'Si la Valeur de la Colonne "A5:A" est "2", et si la valeur de la Colonne "AS5:AS" est "1" alors

Code:
Select Case MsgBox("Archiver vers la BDD ?", vbOKCancel + vbQuestion, "Base De Donnée")

- Etape n°2 OK

Code:
Case vbOK

'la ligne est couper pour être coller à la derniere ligne dans la feuille "BDD"
'Recherche de la première cellule vide de la colonne à partir de A5
Code:
With Worksheets("BDD").Range("A5:A65535")
        Set c = .Find("", LookIn:=xlValues)
        If Not c Is Nothing Then
        Position = c.Address
        Range(Position).Select
        End If
        End With
        ActiveSheet.Paste

- Etape n°3
'Suppression des doublons si toutes les colonnes sont identiques (Ne pas prendre en compte la Colonne AT)

- Etapee n°4
Code:
MsgBox "La mise à jour est achevée !"

- Etape n°2 Annuler
Code:
Case vbCancel
'CreateObject("Wscript.shell").Popup "Opération annulée !!!", 2, "Message", vbExclamation
 

bbb38

XLDnaute Accro
Re : Aide VBA - Sauvegarder un ligne si 2 conditions sur une ligne sont OK

Bonjour Talwayseb, le forum,
J’ai regardé ton fichier et j’ai été surpris par le poids de celui-ci (1131 ko). Personnellement, je mettrai les données sous forme de tableau, et supprimerai toutes les icônes (la présentation est parfaite, mais alourdie le fichier).
Cordialement,
Bernard
 

Discussions similaires

Réponses
3
Affichages
274

Statistiques des forums

Discussions
311 721
Messages
2 081 928
Membres
101 842
dernier inscrit
seb0390