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 le nom d'une feuille d'une combobox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut récupérer le nom d'une feuille d'une combobox
    Bonsoir à tous
    j'ai un fichier excel composé de plusieurs onglets, les données comptables de chaque mois correspond à un onglet, et chaque onglet se compose de 3 colonne à savoir : numéro du compte / libellé / et montant ; je cherche à développer un macro pour comparer et extraire les comptes ayant une variation qui dépasse une pourcentage à saisir dans un textbox ce qui donne un userform avec :
    combobox 1 : le mois à comparer
    combobox 2 : le mois à comparer avec
    Textbox1 : Pour saisir le pourcentage de variation (si je saisie 20% la listbox sera alimenter avec les comptes qui ont enregistrés une variation d'au moins 20%)
    Lisbox : Pour recevoir le résultat:
    Pour alimenter Cmb1 et cmb2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub UserForm_Initialize()
    ComboBox1.Clear
        For Each Ws In ThisWorkbook.Worksheets
            If Ws.Name <> "ACCEUIL" And Ws.Name <> "Vente" And Ws.Name <> "COMPAR" And Ws.Name <> "ENERGIE" And Ws.Name <> "GRAPHIQUE" And Ws.Name <> "GRAPH" And Ws.Name <> "ANALYSE" And Ws.Name <> "H2SO4" And Ws.Name <> "Oleum" And Ws.Name <> "Vapeur" And Ws.Name <> "AlF3" And Ws.Name <> "Anhydrite" And Ws.Name <> "RESULTAT" And Ws.Name <> "RESULTATA" And Ws.Name <> "BALANCE" And Ws.Name <> "RapportM" Then
                ComboBox1.AddItem Ws.Name
                ComboBox2.AddItem Ws.Name
            End If
        Next Ws
    TextBox1.Value = Format(TextBox1.Value, "0.00%")
    End Sub
    Partie du code qui transforme le saisie dans la textbox en pourcentage développé par Patrick à qui je passe un bonsoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If Not InStr("47 48 49 50 51 52 53 54 55 56 57 63 44 ", KeyAscii) > 0 Then KeyAscii = 0
    End Sub
     
    Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If Len(TextBox1) > 1 Then TextBox1 = Replace(TextBox1, "%", "") & "%" 'Chr(keysacii)
    TextBox1 = Replace(Replace(TextBox1, "?", ","), ".", ",") ' POUR CE QUI N'ON PAS LE PAVE NUMERIQUE SUR LE COTE DU CLAVIER (PC PORTABLE)
    End Sub
    Je bloque ici : une fois j'ai choisi le mois et le mois à comparer avec comment déclarer la feuille source de données
    j'ai fait comme ça mais ça marche pas :
    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
    Private Sub CommandButton1_Click()
    Application.ScreenUpdating = False
     
    Dim f1 As Worksheet
    Dim f2 As Worksheet
     
    Set f1 = ThisWorkbook.Sheets(ThisWorkbook.Sheets(UserForm2.ComboBox1.Value))
    Set f2 = ThisWorkbook.Sheets(ThisWorkbook.Sheets(UserForm2.ComboBox2.Value))
     
    Tablo = f1.Range("A2", "C" & f1.Range("C" & f1.Rows.Count).End(xlUp).Row)
    Tabloc = f2.Range("A2", "C" & f2.Range("C" & f2.Rows.Count).End(xlUp).Row)
     
    For i = LBound(Tablo, 1) To UBound(Tablo, 1)
    For j = LBound(Tabloc, 1) To UBound(Tabloc, 1)
        If Tablo(i, 1) = Tabloc(j, 1) And (Tablo(i, 3) - Tabloc(j, 3)) > Tabloc(j, 3) * CDbl(TextBox1.Value) Then
        ' message juste pour tester la procédure
            MsgBox Tablo(i, 1)
        End If
        Next j
    Next i
     
    Application.ScreenUpdating = True
    End Sub
    Merci à vous tous et bonne fin journée

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 420
    Par défaut
    Bonjour,
    A tester:
    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
    Private Sub CommandButton1_Click()
       'Application.ScreenUpdating = False
       Dim f1 As Worksheet, f2 As Worksheet
       Dim Tablo As Variant, Tabloc As Variant
       Dim i As Long, j As Long
       Set f1 = ThisWorkbook.Sheets(Me.ComboBox1.Value)
       Set f2 = ThisWorkbook.Sheets(Me.ComboBox2.Value)
       Tablo = f1.Range("A2:C" & f1.Range("C" & f1.Rows.Count).End(xlUp).Row).Value
       Tabloc = f2.Range("A2:C" & f2.Range("C" & f2.Rows.Count).End(xlUp).Row).Value
       For i = LBound(Tablo, 1) To UBound(Tablo, 1)
          For j = LBound(Tabloc, 1) To UBound(Tabloc, 1)
             If Tablo(i, 1) = Tabloc(j, 1) And (Tablo(i, 3) - Tabloc(j, 3)) > Tabloc(j, 3) * CDbl(Me.TextBox1.Value) Then
                ' message juste pour tester la procédure
                MsgBox Tablo(i, 1)
             End If
          Next j
       Next i
       Application.ScreenUpdating = True
    End Sub
    et suivant pas à pas l'exécution, il devrait être possible de voir ce qui ne va pas.
    Bonne continuation.

  3. #3
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    Bonjour EricDgn, la forum
    Merci pour votre réponse, ça fonctionne et m'a permis d'avancer dans mon petit projet
    Bonne journée à vous et à tous les amis du forum

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 24/02/2017, 12h03
  2. Réponses: 2
    Dernier message: 29/07/2016, 16h49
  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. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  5. Récupérer le nom de la feuille d'une cellule appelante
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/10/2006, 20h12

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