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 :

PROBLEME sur VARIABLE [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4
    Par défaut PROBLEME sur VARIABLE
    BAT.xlsmBAT.xlsm

    Bonjour,

    Je cherche à mettre à jour une base de données mais je n'y arrive pas sur une colonne.
    Je m'explique : combobox2 est une liste de numéro de dossiers.
    Checkbox1 = "Terminé" checkbox2" = en cours,
    J'ai un problème avec ma variable "y" que je n'arrive pas à identifier (sur userform2).
    Pourriez vous m'aider, svp ?
    voici le 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
     
    Private Sub CommandButton1_Click()
     
    Dim y As Long
    Dim b As Boolean
     
      With Worksheets("BDD").Activate
     
        For y = 2 To .Range("A1").CurrentRegion.Rows.Count
          b = Me.ComboBox2.Value = .Cells(y, "B").Value
     
                  If CheckBox1.Value = True Then .Cells(y, 8).Value = "OUI"
    'sheets("BDD").Cells(Lg, 22).Value = CDate(UserForm10.DTPicker1.Value)
            .Range(.Cells(y, 1), .Cells(y, 8)).Select
            If CheckBox2.Value = True Then .Cells(y, 8).Value = "ANNULE"
            MsgBox ("Enregistrement effectué")
            'Sheets("SOMMAIRE").Activate
            Exit For
     
     
        Next y
     
        If b Then
          Unload Me
        Else
          MsgBox ("Données non trouvées!!! ")
        'Sheets("SOMMAIRE").Activate
        End If
        End With
        End Sub

  2. #2
    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
    essayer d'adapter ça :
    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
    Private Sub CommandButton1_Click()
     
       Dim DernLigne As Long
    DernLigne = Sheets("BDD").Range("A" & Rows.Count).End(xlUp).Row
    Dim plage As Range
    Set plage = Sheets("BDD").Range("B2:B" & DernLigne)
    codrecherché = CDbl(ComboBox2.Value)
    With Sheets("BDD")
    For Each cell In plage
    If cell.Value = codrecherché Then
          If CheckBox1.Value = True Then
          .Cells(cell.Row, 6).Value = "OUI"
     
        Else
          MsgBox ("Données non trouvées!!! ")
        End If
        End If
        Next cell
     
       End With
     
        End Sub

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4
    Par défaut
    Merci à toi,

    Tu as reussi à me mettre sur la piste, je vais pouvoir completer, je te remercie.

    @+

  4. #4
    Membre Expert
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Par défaut
    Bonjour,

    Le code de ce type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    For Each cell In plage
    If cell.Value = codrecherché Then
    marche mais est en général très lent .....

    Il vaut mieux passer par un autofilter, en filtrant sur codrecherché et extraitre la sortie en passant par les specialcells, en une seule passe.
    Voir les tutoriels si affinité ou un exemple à la hache:

    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
    Sub Exemple_AutoFilter()
     
    Dim Wsh As Worksheet
    Dim SrcRng As Range, DataRng As Range
    Dim codrecherché as Double
     
    'Initialisation
        Set Wsh = ActiveSheet 'A adapter
     
        With Application
            .ScreenUpdating = False
            .DisplayAlerts = True   'A adapter
        End With
        Set SrcRng = Wsh.Range("A1").CurrentRegion 'A adapter
     
       codrecherché = CDbl(ComboBox2.Value)
     
    ' On filtre sur les valeurs dupliquées
        SrcRng.AutoFilter Field:=2, Criteria1:=codrecherché     '
     
    ' On ne prend que les data affichées après le filtre
        Set DataRng = SrcRng.Offset(1, 0).Resize(SrcRng.Rows.Count - 2, SrcRng.Columns.Count).SpecialCells(xlCellTypeVisible)
        Debug.Print DataRng.Address
     
     
    ' Et on efface
        DataRng.Rows.Delete
        SrcRng.AutoFilter Field:=4      ' On reset les filtres
     
    ' Ou encore plus rapide!
        SrcRng.RemoveDuplicates Columns:=2, Header:=xlYes
        Application.ScreenUpdating = True
     
     
    End Sub

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

Discussions similaires

  1. probleme sur une variable sum
    Par mdordenart dans le forum iReport
    Réponses: 1
    Dernier message: 20/05/2009, 12h27
  2. [MySQL] probleme sur 2 variables issues d'une table $_POST
    Par gilal dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 04/03/2008, 18h02
  3. problem sur rstAdd![<variable>] VBA-Access
    Par daniel_gre dans le forum VBA Access
    Réponses: 1
    Dernier message: 24/08/2007, 17h59
  4. [Win32][2005perso]Probleme d'affectation sur variable Typée
    Par Qwazerty dans le forum Composants VCL
    Réponses: 4
    Dernier message: 13/08/2007, 00h55
  5. [langage] probleme sur test d'une variable
    Par Melvine dans le forum Langage
    Réponses: 11
    Dernier message: 25/10/2006, 20h31

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