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 :

Récupérer les données EXCEL sur FORMULAIRE [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Assistante Développement
    Inscrit en
    Juin 2008
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistante Développement
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2008
    Messages : 116
    Par défaut Récupérer les données EXCEL sur FORMULAIRE
    Bonjour,

    j'ai créée un formulaire, j'ai un tableau Excel avec des tarifs.

    je voudrais que les utilisateurs puissent :

    en cochant une case option que le tarif s'affiche automatiquement (tableau excel) qu'en mettant une date, mon formulaire affiche le bon tarif, en mettant le pays qu'il affiche la TVA etc...

    Cela est-il possible en faisant du VBA que je récupère mes données EXCEL sur mon formulaire ?

    Merci d'avance pour votre contribution, je sais le faire de WORD à EXCEL mais pas d'EXCEL sur FORMULAIRE.

  2. #2
    Membre confirmé
    Femme Profil pro
    Assistante Développement
    Inscrit en
    Juin 2008
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistante Développement
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2008
    Messages : 116
    Par défaut
    bonjour,

    en fait dans mon Userform, j'ai 2 boutons commandes, je préfèrerais du code en VBA.

    Votre solution ne me convient pas, trop simpliste et pas assez fiable pour ce que je veux faire.

    J'ai des boutons d'option à côté d'une tranche de CA sur mon Userform :
    ex :
    Supérieur à 125 KF j'ai plusieurs tarifs comme çà
    dans mon Userform :
    DATE : quand on met une date, le tarif change en fonction du mois de l'année - 1er trimestre, 2ème trim. etc j'ai un droit d'entrée et une cotisation annuelle, un bouton valider et un bouton annuler
    sur EXCEL :

    mes données se trouve de la colonne A1 à K7 avec CA tarifs et remises en fonction du trimestre
    Je vous remercie de votre contribution, désolée d'être si débutante...

    Bonjour,

    je vous envoie mon userform pour faire plus simple, je pense que mon language n'est pas clair.

    Merci de me donner votre avis.

    En fait, je voudrais que mes champs dans mon Userform soient remplis en fonction de mon tableau EXCEL.

    Merci encore, car je sais, que je ne suis pas simple...
    Fichiers attachés Fichiers attachés

  3. #3
    Membre confirmé
    Femme Profil pro
    Assistante Développement
    Inscrit en
    Juin 2008
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistante Développement
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2008
    Messages : 116
    Par défaut récupérer données EXCEL sur FORMULAIRE USERFORM
    Bonjour,

    j'ai un petit souci, pouvez-vous m'aider SVP

    J'ai un message d'erreur qui me demande un with end ?

    je ne comprends pas.

    Merci de me dire comment faire pour qu'il aille chercher la bonne colonne en fonction du mois de l'année !

    je n'y arrive pas.

    désolée mais je suis une vraie débutante.

    je n'utilise que rarement le code VBA, et là j'en ai besoin.

    pour aider mes petits adhérents.

    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
    Private Sub OK_Click()
    'feuille contenant la valeur à chercher
    With Sheets("tarifs HT")
    'de la ligne 2 à la dernière ligne utilisée de la colonne C
    For i = 2 To .Cells(Rows.Count, 3).End(xlUp).Row
    'recherche de la ligne en colonne C qui correspond à la sélection du listbox1
    If .Cells(i, 3).Text = Me.tarifs Then
    'si oui tarifs = colonne suivante même ligne
    droitentree = .Cells(i, 3).Text
    cotisationan = .Cells(i, 4).Text
     
    Exit For
    End If
    Next
    End Sub
     
     
    Private Sub UserForm_Initialize()
        Datel = Format(Date, "dd/mm/yyyy")
    End Sub

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Par défaut
    Bonjour,

    J'ai un message d'erreur qui me demande un with end ?
    Voir le code ci-dessous
    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
    Private Sub OK_Click()
    'feuille contenant la valeur à chercher
    With Sheets("tarifs HT")  '/// un With demande obligatoirement un End With
      'de la ligne 2 à la dernière ligne utilisée de la colonne C
      For i = 2 To .Cells(Rows.Count, 3).End(xlUp).Row
        'recherche de la ligne en colonne C qui correspond à la sélection du listbox1
        If .Cells(i, 3) = Me.tarifs Then '/// c'est .Value (on peut l'ommetre car c'est la propriété par défaut)
          'si oui tarifs = colonne suivante même ligne
          droitentree = .Cells(i, 3)
          cotisationan = .Cells(i, 4)
          Exit For
        End If
      Next i
    End With    '///
    End Sub
    *****************
    Votre solution ne me convient pas, trop simpliste et pas assez fiable pour ce que je veux faire.
    Ce n'était pas une solution mais une idication pour mettre le pied à l'étrier.
    *****************
    je vous envoie mon userform pour faire plus simple
    Le classeur a été envoyé sous extension .xlsx
    De ce fait, le code des macros, le UserForm et son code ont disparu.
    Zippez le classeur (.zip) ou enregistrez le au format 2003 (.xls) pour qu'il soit transmis avec tout son code et ses objets.

  5. #5
    Membre confirmé
    Femme Profil pro
    Assistante Développement
    Inscrit en
    Juin 2008
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistante Développement
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2008
    Messages : 116
    Par défaut récupérer données EXCEL sur FORMULAIRE USERFORM
    bonjour, merci pour votre réponse.

    j'ai de nouveau un souci, mon Userform ne s'incrémente pas ?

    Je pense que j'oublie quelque chose, mais quoi

    Je vous renvoie mon Userform avec code, je voudrais que en fonction de la date du jour, il aille chercher le bon tarif qui se trouve sur mon tableau.


    j'ai du mal, débutante, je suis.
    Fichiers attachés Fichiers attachés

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Par défaut
    Bonjour,

    Vous n'étiez pas sur la bonne colonne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If .Cells(i, 1) = Me.tarifs Then ET NON PAS If .Cells(i, 3) = Me.tarifs Then
    ***************

    La piste à suivre.

    Il faut changer la structure de votre feuille pour indiquer les bornes des périodes :
    1) insérer une ligne supplémentaire pour obtenir une nouvelle ligne 2
    2) entrer une date de début de période en ligne 1 (en format Date)
    3) entrer une date de fin de période en ligne 2 (en format Date)

    Le code modifié
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    Private Sub CANCEL_Click()
    Unload Me
    End Sub
     
    Private Sub OK_Click()
    'feuille contenant la valeur à chercher
    With Sheets("tarifs HT")
      'de la ligne 2 à la dernière ligne utilisée de la colonne C
      For i = 3 To .Cells(Rows.Count, 3).End(xlUp).Row
        'recherche de la ligne en colonne A qui correspond à la sélection de la ComboBox
        If .Cells(i, 1) = Me.tarifs Then
          'si oui tarifs = colonne suivante même ligne
          droitentree = .Cells(i, 3)
          'de la colonne A à la dernière colonne de la région courante (on balaie la 1ère ligne à la recherche d'une date)
          For j = 1 To .[a1].CurrentRegion.Columns.Count
            'par défaut, on prend la cotisation colonne 4 ("D")
            cotisationan = .Cells(i, 4)
            'mais si on trouve une date correspondante dans les autres colonnes on écrase la valeur par défaut
            If IsDate(.Cells(1, j)) Then
              'recherche du tarif selon la date
              'on compare la date de début et la date de fin de la période
              If CDate(Me.Datel) >= .Cells(1, j) And CDate(Me.Datel) <= .Cells(2, j) Then
                cotisationan = .Cells(i, j)
                Exit For
              End If
            End If
          Next j
          Exit For
        End If
      Next i
    End With
    End Sub
     
    Private Sub UserForm_Initialize()
    Dim S As Worksheet
    Dim R As Range
    Dim var As Variant
    '--- Monte les données dans la ComboBox ---
    Set S = Sheets("tarifs HT")
    Set R = S.Range("a3:a" & S.[a65536].End(xlUp).Row)
    var = R
    Me.tarifs.List = var
    '-------------
        Datel = Format(Date, "dd/mm/yyyy")
    End Sub
    Ci-joint, votre classeur modifié pour plus de facilité.

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 16/01/2020, 14h21
  2. [FORM] récupérer les données d'un formulaire
    Par dragonfly dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 04/12/2007, 13h53
  3. Réponses: 14
    Dernier message: 15/05/2007, 14h51
  4. Récupérer les données d'un formulaire
    Par rimeh dans le forum Langage
    Réponses: 12
    Dernier message: 05/02/2007, 14h58
  5. récupérer les données d'un formulaire un peu spécial
    Par Jim_Nastiq dans le forum Interfaces Graphiques
    Réponses: 12
    Dernier message: 10/07/2006, 10h53

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