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

Excel Discussion :

Problème lié au décalage de cellule d'une donnée validée


Sujet :

Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2017
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2017
    Messages : 13
    Points : 9
    Points
    9
    Par défaut Problème lié au décalage de cellule d'une donnée validée
    Bonjour le forum
    J'ai un userform que j'aimerais utiliser pour valider les valeurs dans les cellules en fonction des options choisies.
    Seulement, il se trouve que lorsque je valide ces données, elles se décalent d'une colonne. J'ai besoin d'aide pour solutionner ce problème. Voici mon code.
    Merci d'avance

    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
    Private Sub CommandButton1_Click()
     
    Dim macellule As Range
     
    If UserForm2.Label10.Caption <> "" Then
        If UserForm2.TextBox2.Value <> "" And IsNumeric(TextBox2) And UserForm2.TextBox2.Value <= 10 Then
     
     
            Set macellule = Application.WorksheetFunction.Index(Range("PLAGE"), Application.WorksheetFunction.Match(UserForm2.Label10.Caption, _
            Range("nom"), 0), Application.WorksheetFunction.Match(UserForm2.Label7.Caption, Range("ENTETE"), 0))
            Sheets("Feuil1").Select
            macellule.Value = UserForm2.TextBox2.Value
     
     
        Else: MsgBox "Veuillez saisir une note comprise entre et 10 "
            TextBox2.SetFocus
        End If
    Else: MsgBox "Veuillez préciser le Nom "
        TextBox1.SetFocus
    End If
    End Sub

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Gautier Prosper Voir le message

    Bonjour,

    Quelles sont les adresses de vos zones PLAGE et ENTETE ?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2017
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2017
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Bonjour Eric. Merci pour ta réaction.
    Je me suis servi de la fonction DECALER.
    ENTETE:
    Code formule : Sélectionner tout - Visualiser dans une fenêtre à part
    = DECALER(feuil1!$C$1;0;0;NBVAL(feuil1!$C$1);NBVAL(feuil1!$1:$1)-2)

    nom:
    Code formule : Sélectionner tout - Visualiser dans une fenêtre à part
    = DECALER(feuil1!$C$1;0;0;NBVAL(feuil1!$C:$C);1)

    PLAGE:
    Code formule : Sélectionner tout - Visualiser dans une fenêtre à part
    = DECALER(feuil1!$C$1;1;0;NBVAL(feuil1!$C:$C)-1;NBVAL(feuil1!$1:$1)-2)

    Je précise que le formulaire puise ses données dans la feuil2.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Gautier Prosper Voir le message
    La cellule jaune en A4 contient la formule Index Equivalent, la cellule ocre en A5 contient le résultat de la procédure Test ci-dessous. Test est lancé par l'événement change dans Feuil2.
    Pièce jointe 591796


    Dans le module 1
    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
     
    Sub Test()
     
    Dim MaCellule As Range
     
        With Sheets("Feuil2")
     
             Set MaCellule = .Range("A5")
             MaCellule.Value = WorksheetFunction.Index(Range("PLAGE"), WorksheetFunction.Match(.Range("A1"), Range("nom"), 0), WorksheetFunction.Match(.Range("A2"), Range("ENTETE"), 0))
             Debug.Print MaCellule.Value
             Debug.Print "Plage : " & Range("PLAGE").Address & ", ENTETE : " & Range("ENTETE").Address & ", nom : " & Range("nom").Address
             Set MaCellule = Nothing
     
        End With
     
    End Sub

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2017
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2017
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Bonsoir Eric
    Merci pour ton orientation car grâce à toi j'ai compris que le problème provenais du décallage d'une ligne que j'avais prévu dans la plage excluant ainsi l'entête.
    La fonction decaler finale de "PLAGE " est donc la suivante:
    PLAGE:
    Code formule : Sélectionner tout - Visualiser dans une fenêtre à part
    = DECALER(feuil1!$C$1;0;0;NBVAL(feuil1!$C:$C);NBVAL(feuil1!$1:$1)-2)
    Merci et bonne soirée

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/12/2015, 19h13
  2. [XL-2010] Dans un TCD, savoir si une cellule est une donnée ou un sous-total
    Par Pierre Dumas dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 05/09/2012, 11h34
  3. problème de couleur de cellule dans une JTable
    Par rprom1 dans le forum Composants
    Réponses: 3
    Dernier message: 04/04/2007, 00h01
  4. Problème décalage du JPanel dans une JFrame a cause du JMenuBar
    Par matou72 dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 09/03/2007, 20h17
  5. Problème de lecture des cellules dans une feuille Excel
    Par wangjun dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/10/2006, 09h35

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