vérifier le contenu de 2 colonnes avant d'insérer Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
g
gmb
Fanatique d'Excel
Fanatique d'Excel
Messages : 12'542
Appréciations reçues : 320
Inscrit le : 4 avril 2013
Version d'Excel : 2016

Message par gmb » 29 octobre 2014, 19:29

Hou ! La ! La !
La honte !
Corrige-la vite en ajoutant le'' End If'' ou en reprenant le nouveau fichier.
        'no_ligne = N° de ligne de la dernière cellule non vide de la colonne +1
        no_ligne = Range("A65536").End(xlUp).Row + 1
        
        
        'Contrôle des double sous-compétences
        For Ln = 2 To no_ligne
            If ComboBox3.Value = Cells(Ln, "C").Value _
                    And dtpicker1.Value = Cells(Ln, "A").Value Then
                MsgBox "Il y a déjà cette sous-compétence à la date " & dtpicker1.Value & " à la ligne " & Ln, 16
                Exit Sub
            [surligner]End If[/surligner]
        Next Ln
        
        

        'Insertion des valeurs sur la feuille
demo V2.xlsm
(61.2 Kio) Téléchargé 11 fois
b
babastioun
Jeune membre
Jeune membre
Messages : 17
Inscrit le : 20 octobre 2014
Version d'Excel : 2007

Message par babastioun » 29 octobre 2014, 22:02

Encore merci pour cette aide.
Malheureusement cela ne fonctionne pas.
Quand je clic sur "valider" de l'userform après avoir renseigné tous les combobox il ne se passe rien mis à part la sélection de la feuille C1.
Comme tu n'as pas le DTpicker je vais essayer de refaire le fichier demo avec simplement un combobox de date et je vais le remettre en pièce jointe.
A plus
b
babastioun
Jeune membre
Jeune membre
Messages : 17
Inscrit le : 20 octobre 2014
Version d'Excel : 2007

Message par babastioun » 29 octobre 2014, 22:20

Donc voila le fichier demo d'origine sans le DTpicker, mais une liste de dates à la place.
demo.xlsm
(64.52 Kio) Téléchargé 8 fois
Avatar du membre
Banzai64
Fanatique d'Excel
Fanatique d'Excel
Messages : 16'726
Appréciations reçues : 4
Inscrit le : 21 novembre 2010
Version d'Excel : 2003 FR (learning 2010 - 2013)

Message par Banzai64 » 29 octobre 2014, 23:05

Bonsoir

Une réponse avec ton fichier et le DtPicker
babastioun Vérification V001.xlsm
(76.79 Kio) Téléchargé 13 fois
Image
b
babastioun
Jeune membre
Jeune membre
Messages : 17
Inscrit le : 20 octobre 2014
Version d'Excel : 2007

Message par babastioun » 30 octobre 2014, 11:03

Bonjour

Je n'ai qu'un mot à dire excellent, c'est formidable de voir que ça marche à merveille.
Un grand merci a vous deux.
Par contre j'avoue que je ne comprend pas tout ce qu'il y a dans code, comme quoi mon niveau est pas très élevé.
Si par hasard vous avez un peu de temps dans le futur pour me traduire les codes afin de mieux comprendre le fonctionnement, je suis preneur.
Alors encore merci pour votre aide a tout les deux.
A la prochaine. :btres:
b
babastioun
Jeune membre
Jeune membre
Messages : 17
Inscrit le : 20 octobre 2014
Version d'Excel : 2007

Message par babastioun » 30 octobre 2014, 12:18

Encore moi.

Donc voilà j'ai tout réinséré dans mon fichier complet.
Suite à ça j'ai rencontré un soucis, c'est que les données du userform venaient s'insérer uniquement à la première ligne du tableau concerné.
Pour qu'il insère à la dernière ligne il fallait impérativement sélectionner la feuille concerné avant de cliquer sur valider.
Donc j'ai rajouter le code suivant 13 fois (parce que j'ai 13 feuilles)

If Me.CbbCompetence = "nom de la feuille" Then ' => SI condition validée ALORS
Sheets("C1").Select 'Instructions si vrai
Else ' => SINON
'Instructions si faux
End If

Et donc la ça fonctionne.
Alors ma question est, il y a t'il moyen d'éviter 13 fois ce code et que cela s'insère à la dernière ligne du tableau de la bonne feuille ?
Ceci dit comme ça marche bien comme ça, c'est plus une question pour info, maintenant c'est seulement si vous avez le temps.
Je vous remercie
A plus
Avatar du membre
Banzai64
Fanatique d'Excel
Fanatique d'Excel
Messages : 16'726
Appréciations reçues : 4
Inscrit le : 21 novembre 2010
Version d'Excel : 2003 FR (learning 2010 - 2013)

Message par Banzai64 » 30 octobre 2014, 16:34

Bonjour
babastioun a écrit :il fallait impérativement sélectionner la feuille concerné
hemmm il manque un . (point) devant le Range(...

Modifies la ligne correspondante
      'no_ligne = N° de ligne de la dernière cellule non vide de la colonne +1
      No_Ligne = [surligner].[/surligner]Range("A" & Rows.Count).End(xlUp).Row + 1
babastioun a écrit :y a t'il moyen d'éviter 13 fois ce code
Le code que j'avais utilisé n'est pas bon ?
Au la vue de tes 2 pages, j'en avais déduit que le nom de la page c'était le nom sélectionné sans le _ (underscore)

Indiques mois la logique à suivre
babastioun a écrit :traduire les codes
Quelques commentaires dans le code (juste pour la recherche)
babastioun Vérification V002.xlsm
(78.28 Kio) Téléchargé 10 fois
Image
b
babastioun
Jeune membre
Jeune membre
Messages : 17
Inscrit le : 20 octobre 2014
Version d'Excel : 2007

Message par babastioun » 1 novembre 2014, 09:05

Bonjour

Alors, voilà c'est bon il manquais bien juste un point devant "range", comme tu me l'as dit Banzai64.
Depuis que je l'ai rajouté plus besoin de sélectionner la feuille, et donc plus besoin de 13 fois le code.
Donc pour moi tout est ok sur ce sujet.
Merci pour les explications des codes que tu as écrit (maintenant faut que je les épluche pour bien les comprendre)
Pour moi le sujet et résolu, et encore merci a tous pour votre aide.
A plus
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message