Problème sur condition
#1
Aspirant XLPages

Inscription: 20/04/2010

Messages: 28

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 20-04-2013 16h32
 Bonjour le forum,

Après plusieurs heures de recherche je m'en remets à vous pour un coup de main.
Voici donc l'exposé de mon problème:

J'ai crée un userform qui va alimenter une base de données.

a partir d'une feuille "recherche" mon code me permet d'aller récupérer les renseignements dans ma base de données et de créer une fiche contact que j'appelle ici "remplissage".

Si la référence n' existe pas je souhaiterais créer un autre contact en faisant apparaître mon userform, d'où ma deuxième condition . Cependant même si ma référence existe j'ai systématiquement ma boite de dialogue qui s'ouvre .

En résumé: si ma référence saisie n'existe pas, une boîte de dialogue s'ouvre et me permet d'ouvrir mon userform pour une nouvelle saisie ( là c'est ok)
si ma référence existe, je souhaiterais que la boîte de dialogue ne s'ouvre pas mais passer directement à ma feuille remplissage.

 je vous joins un petit fichier pour mieux me faire comprendre 
  Un grand Merci pour vos réponses


Pièce jointe:
xlsm essai.xlsm   [ Taille: 24.86 Ko - Téléchargements: 580 ]
Hors Ligne
Rapport   Haut 

Re: Problème sur condition
#2
Accro XLPages

Inscription: 23/05/2007
De Chamrousse

Messages: 309

Système d'exploitation:
PC
Version Excel utilisée:
2013
Posté le : 27-04-2013 19h56
Bonjour à tous,

Ton fichier ne comporte pas d'USF.

Un essai avec ce que j'ai compris de la demande :

Dans le module de l'USF
Option Explicit

Private Sub CommandButton1_Click()
Dim DerL&
DerL = Feuil1.Range("A" & Rows.Count).End(xlUp).Row + 1

Feuil1.Cells(DerL, 1) = TextBox1
Feuil1.Cells(DerL, 2) = TextBox2
Feuil1.Cells(DerL, 3) = TextBox3

Feuil4.Cells(3, 2) = TextBox1
Feuil4.Cells(6, 2) = TextBox2
Feuil4.Cells(9, 2) = TextBox3

UserForm1.Hide
End Sub

Dans un module (ton code très légèrement modifié)
Sub trouve()
Dim DerL As Long, compteur As Long, C As String, ok As Long
C = Sheets("Recherche").Range("C7").Value
DerL = Sheets("BD").Range("A" & Rows.Count).End(xlUp).Row
 'compteur pour vérifier chaque cellule de la colonne
 Sheets("BD").Select
 For compteur = 2 To DerL
    If Range("A" & compteur).Value = C Then
        Range("A" & compteur, "C" & compteur).Copy
       Sheets("resultat").Select
       Range("A1").Select
       ActiveSheet.Paste
     End If
    Next compteur
  'mise à jour remplissage
    With Sheets("remplissage")
        .Cells(3, 2).Value = Sheets("resultat").Range("A1").Value


        .Cells(6, 2).Value = Sheets("resultat").Range("B1").Value
        .Cells(9, 2).Value = Sheets("resultat").Range("C1").Value
     End With
    Sheets("resultat").Range("A1:C1").ClearContents
    If Feuil4.Range("B3") = "" Then
        ok = MsgBox(" Recherche infructueuse", vbYesNo, "Voulez-vous créer un nouveau contact?")
        If ok = 6 Then
        UserForm1.Show
       End If
     End If
    Sheets("Remplissage").Select
End Sub
  

A+ à tous
Pièce jointe:
xlsm JC USF Recherche et Création.xlsm   [ Taille: 35.75 Ko - Téléchargements: 619 ]


Cordialement
Hors Ligne
Rapport   Haut 

Re: Problème sur condition
#3
Aspirant XLPages

Inscription: 20/04/2010

Messages: 28

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 29-04-2013 20h40
 Bonsoir JCGL, le Forum,

Merci pour ta solution, c'est tout à fait ce que je cherchais à obtenir.

A force de "bidouiller" j'y suis arrivé mais je vais ré-écrire le code à ta sauce, il n'en sera que plus digeste.

Encore merci pour ton aide.

Wilplan
Hors Ligne
Rapport   Haut 

Re: Problème sur condition
#4
Débutant XLPages

Inscription: 21/01/2013

Messages: 10

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 12-05-2013 07h57

Bonjour  wilplan

 

J'aurais tendance à déconseillé les userform pour les débutants... mais faut bien commencer un jour

En effet, assez curieusement ton classeur ne contient de userform, mais passons

Je note que tu utilises l'onglet recherche pour effectuer la saisie de ta référence, cela prouve que tu sais te passer de userform, car on pourrait en utiliser un pour cette saisie, mais je ne le conseille pas

Je te propose, pour régler la dynamique de ton classeur d'utiliser un onglet "fiche" vierge si la référence n'existe pas et renseigné si elle existe.

Il est d'ailleurs possible de réaliser cet onglet et son remplissage sans un gramme de VBA, en utilisant des formules simples comme EQUIV, =SI( ; ; )...

Dès lors que la présentation et l'enchainement te plaira, il sera temps de créer des macros VBA, puis le cas échéant un userform

 

 

bon courage

papyjac

Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes