IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Compléter une liste avec une valeurs si elle n'existe pas [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Juillet 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Juillet 2018
    Messages : 10
    Points : 6
    Points
    6
    Par défaut Compléter une liste avec une valeurs si elle n'existe pas
    Bonjour,

    J'aimerai avec un userform saisir une valeur dans un textbox et si cette valeur n'appartient pas a une certaine plage de cellule on la rajoute à cette plage. Par exemple sur A1:A5 j'ai :

    A
    B
    C
    D
    E

    dans mon textbox si je saisie F, F se positionnera en A6, si je saisie A, alors rien ne se passe.

    Avez vous une idée de la nature de cette solution ?

    Merci Beaucoup.

  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Tout d'abord, il serait plus simple d'utiliser une InputBox plutôt qu'une TextBox dans un UserForm.
    https://msdn.microsoft.com/library/d...ice.15%29.aspx

    Pour ton processus, il faut lancer un Find sur la plage en plaçant le résultat dans une variable de type Range.
    Si le résultat est Nothing, tu ajoutes la saisie à la fin de ta série (tu peux trouver la fin avec la propriété End de la plage).
    Si le résultat n'est pas Nothing, tu utilises la propriété Row appliquée au résultat pour savoir sur quelle ligne te placer.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Juillet 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Juillet 2018
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Merci de vote aide je fais un code et si jamais je reviens vers vous

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Juillet 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Juillet 2018
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Merci de m'avoir mis sur le bon chemin,

    Avec quelques recherche voila ce que j'ai pu obtenir comme code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Option Explicit
     
    Private Sub Cherche()
    'déclaration des variables :
    Dim Trouve As Range, PlageDeRecherche As Range
    Dim Valeur_Cherchee As String, AdresseTrouvee As String
     
    '********* à adapter ***********
    'affectation de valeurs aux variables :
        'on cherche le mot "Trouve"
    Valeur_Cherchee = Me.CBrue
        'dans la première colonne de la feuille active
    Set PlageDeRecherche = Sheet("Liste des rues").Columns(1)
    '*******************************
     
    'méthode find, ici on cherche la valeur exacte (LookAt:=xlWhole)
    Set Trouve = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlWhole)
     
    'traitement de l'erreur possible : Si on ne trouve rien :
    If Trouve Is Nothing Then
        r = Sheets("Liste des rues").Range("A65536").End(xlUp).Row + 1
        'ici, traitement pour le cas où la valeur n'est pas trouvée
        Sheets("Liste des rues").Cells(r, 1) = Me.CBrue
        Sheets("Liste des rues").Cells(r, 2) = Me.irisq
    'Else
    '    'ici, traitement pour le cas où la valeur est trouvée
    '    AdresseTrouvee = Trouve.Address
    End If
    'MsgBox AdresseTrouvee
    'vidage des variables
    Set PlageDeRecherche = Nothing
    Set Trouve = Nothing
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 24/02/2017, 12h03
  2. Réponses: 1
    Dernier message: 25/02/2016, 11h25
  3. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  4. [AC-2007] Inserer la valeur dans une table avec une liste qui en alimente une autre
    Par DidoFido dans le forum VBA Access
    Réponses: 6
    Dernier message: 03/12/2009, 11h39
  5. Réponses: 4
    Dernier message: 15/10/2009, 13h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo