[résolu]Validation des données sur Excel

Développement, conception de sites web, PHP, (X)HTML, ASP, Ajax, CSS, Javascript, Flash, MySQL, et autres ont leurs entrées dans cette section. On peut aussi parler d'hébergement, de maintenance, de sécurité...

Modérateur: Modérateurs

[résolu]Validation des données sur Excel

Messagepar NATPAT » 03 Mai 2013 14:33

Bonjour

je souhaite que vous m'aidiez à trouver une solution ,je cherche à lier plusieurs valeurs à une colonne c'est à dire lorsque je choisis par ex A alors sur la colonne à coté je veux que uniquement la liste X qui s'affiche :

j'ai fait une liste nommée :valeurs(chiffres, lettres) dans cellule A1,A2
une deuxième liste nommée chiffre dans B(1,4) et une 3eme nommée lettres dans C(1,4)

donc sur la 2eme feuille j'ai fait :
test1 test2
chiffres a

donc quand je choisis (chiffres) sur (test1) je veux que seulement les chiffre qui s'affiche autrement dit uniquement la liste nommé (chiffre) qui se trouve dans B(1,4) dans la 1ere feuille

Merci
Avatar de l’utilisateur
NATPAT
 
Messages: 41
Inscription: 18 Nov 2012 21:58
Localisation: /www/root/

Re: validation des donnes sur excel

Messagepar bororo » 04 Mai 2013 14:08

salut
Je ne connais pas assez excel pour te donner une réponse précise
je peux te conseiller d eposer ta question sur ce site
http://www.excel-downloads.com/
tu devrais avoir une réponse exacte tres vite
Avatar de l’utilisateur
bororo
Modérateur
Modérateur
 
Messages: 1984
Inscription: 13 Déc 2003 20:33
Localisation: Bordeaux

Re: validation des donnes sur excel

Messagepar mwonex » 04 Mai 2013 16:25

Bonjour,
Quand tu parles de 2e feuille, je pense que tu évoques un 2e onglet, il suffit dans celui-ci de faire =, puis revenir sur la 1ere et cliquer sur la valeur ou la cellule et ok, ça revient direct sur le 2e onglet et la valeur est reportée:
Image
= et retour si je comprends ton problème voir en haut = feuil1!A4
Image
Maintenant on peut copier coller des colonnes etc , et en leur donnant un nom avoir la liste déroulante dans la cellule en haut à gauche de tableur.
Image
d'autres fonctions sont évidemment disponibles à voir avec "Excel download" et +
Cette liste acquise en onglet feuille 1 pourra facilement être retrouvée en feuille 2 etc pour divers traitements...
Maintenant je ne sais pas ton but, est-ce de faire un traduction de chiffres en lettres, parce que c'est facile avec une macro spéciale:

Coller dans visual basic cecci:
Code: Tout sélectionner
Function CHIFLETR(Nombre, Optional Monnaie As String = "euro", Optional Maju As Boolean = True)

    ' CETTE FONCTION TRADUIT EN LETTRES UN NOMBRE POSITIF INFERIEUR
    ' AU MILLIARD, AVEC DEUX DECIMALES
   
    ' Elle fait appel à la macro "Codage" ci-dessous,
    ' qui en est indissociable

    Dim TrCent      As Boolean
    Dim CenTouRon   As Boolean
   
    Dim Entiers     As Long
    Dim Centimes    As Long
   
    Dim TrUnités    As Integer
    Dim TrMilles    As Integer
    Dim TrMlions    As Integer
   
    Dim QuUnités    As Long
    Dim QuMilles    As Long
    Dim QuMlions    As Long
   
    Dim Lib         As String
   
    If Nombre > 999999999.99 Then
        CHIFLETR = ""
        Exit Function
    End If
   
    Entiers = Int(Nombre)
    Centimes = (Nombre - Entiers) * 100
    TrUnités = Entiers Mod 1000
    QuUnités = Entiers \ 1000
    TrMilles = QuUnités Mod 1000
    QuMilles = QuUnités \ 1000
    TrMlions = QuMilles Mod 1000
    QuMlions = QuMilles \ 1000
   
    Lib = ""
   
    CenTouRon = (Entiers Mod 100) = 0
   
    If TrMlions <> 0 Then
        Call Codage(TrMlions, Lib, CenTouRon, False)
        If TrMlions = 1 Then
            Lib = Lib & "million "
        Else
            Lib = Lib & "millions "
        End If
    End If
   
    If TrMilles <> 0 Then
        If TrMilles <> 1 Then
            Call Codage(TrMilles, Lib, CenTouRon, False)
        End If
        Lib = Lib & "mille "
    End If
   
    If TrUnités <> 0 Then
        Call Codage(TrUnités, Lib, CenTouRon, True)
    End If
   
    If Entiers >= 2 Then
        Lib = Lib & Monnaie & "s "
    ElseIf Entiers >= 1 Then
        Lib = Lib & Monnaie & " "
    Else
        Lib = "zéro " & Monnaie & " "
    End If
    If Centimes <> 0 Then
        Lib = Lib & "et "
        Call Codage(Centimes, Lib, CenTouRon, False)
        If Centimes = 1 Then
            Lib = Lib & "centime "
        Else
            Lib = Lib & "centimes "
        End If
    End If

    CHIFLETR = Lib
   
    If Maju Then CHIFLETR = UCase(CHIFLETR)

End Function
Sub Codage(Tranche, Lib, CenTouRon, TrCent)

    ' CETTE MACRO EST INDISSOCIABLE DE LA FONCTION CHIFLETR
    ' CI-DESSUS, ET TRADUIT EN LETTRES UNE TRANCHE DE 3 CHIFFRES

    Dim C       As Byte, D As Byte, D1 As Byte, U As Byte
    Dim T00     As Variant
    Dim Tb0     As Variant, Tb1 As Variant, Tb2 As Variant, Tb3 As Variant, Tb4 As Variant
    Dim Tb5     As Variant, Tb6 As Variant, Tb7 As Variant, Tb8 As Variant, Tb9 As Variant
   
    T00 = Array("", "", "deux ", "trois ", "quatre ", "cinq ", "six ", "sept ", "huit ", "neuf ")
   
    Tb0 = Array("", "un ", "deux ", "trois ", "quatre ", "cinq ", "six ", "sept ", "huit ", "neuf ")
    Tb1 = Array("dix ", "onze ", "douze ", "treize ", "quatorze ", "quinze ", "seize ", "dix-sept ", "dix-huit ", "dix-neuf ")
    Tb2 = Array("vingt ", "vingt-et-un ", "vingt-deux ", "vingt-trois ", "vingt-quatre ", "vingt-cinq ", "vingt-six ", "vingt-sept ", "vingt-huit ", "vingt-neuf ")
    Tb3 = Array("trente ", "trente-et-un ", "trente-deux ", "trente-trois ", "trente-quatre ", "trente-cinq ", "trente-six ", "trente-sept ", "trente-huit ", "trente-neuf ")
    Tb4 = Array("quarante ", "quarante-et-un ", "quarante-deux ", "quarante-trois ", "quarante-quatre ", "quarante-cinq ", "quarante-six ", "quarante-sept ", "quarante-huit ", "quarante-neuf ")
    Tb5 = Array("cinquante ", "cinquante-et-un ", "cinquante-deux ", "cinquante-trois ", "cinquante-quatre ", "cinquante-cinq ", "cinquante-six ", "cinquante-sept ", "cinquante-huit ", "cinquante-neuf ")
    Tb6 = Array("soixante ", "soixante-et-un ", "soixante-deux ", "soixante-trois ", "soixante-quatre ", "soixante-cinq ", "soixante-six ", "soixante-sept ", "soixante-huit ", "soixante-neuf ")
    Tb7 = Array("soixante-dix ", "soixante-et-onze ", "soixante-douze ", "soixante-treize ", "soixante-quatorze ", "soixante-quinze ", "soixante-seize ", "soixante-dix-sept ", "soixante-dix-huit ", "soixante-dix-neuf ")
    Tb8 = Array("quatre-vingt ", "quatre-vingt-un ", "quatre-vingt-deux ", "quatre-vingt-trois ", "quatre-vingt-quatre ", "quatre-vingt-cinq ", "quatre-vingt-six ", "quatre-vingt-sept ", "quatre-vingt-huit ", "quatre-vingt-neuf ")
    Tb9 = Array("quatre-vingt-dix ", "quatre-vingt-onze ", "quatre-vingt-douze ", "quatre-vingt-treize ", "quatre-vingt-quatorze ", "quatre-vingt-quinze ", "quatre-vingt-seize ", "quatre-vingt-dix-sept ", "quatre-vingt-dix-huit ", "quatre-vingt-dix-neuf ")
   
    C = Tranche \ 100
    If C <> 0 Then
        If TrCent And CenTouRon And C <> 1 Then
            Lib = Lib & T00(C) & "cents "
        Else
            Lib = Lib & T00(C) & "cent "
        End If
    End If
    D1 = Tranche Mod 100
    D = D1 \ 10
    U = Tranche Mod 10
   
    Select Case D
        Case 0: Lib = Lib & Tb0(U)
        Case 1: Lib = Lib & Tb1(U)
        Case 2: Lib = Lib & Tb2(U)
        Case 3: Lib = Lib & Tb3(U)
        Case 4: Lib = Lib & Tb4(U)
        Case 5: Lib = Lib & Tb5(U)
        Case 6: Lib = Lib & Tb6(U)
        Case 7: Lib = Lib & Tb7(U)
        Case 8: Lib = Lib & Tb8(U)
        Case 9: Lib = Lib & Tb9(U)
    End Select

End Sub

et puis enregistrer comme nouvelle macro, après ça, il suffit de sélectionner une cellule de chiffres, faire: = CHIFLETR, dans la cellule ou on veut avoir la traduction en lettres (à redimensionner le cas échéant), utile pour les factures...Mais ce n'est peut-être pas exactement ton but, ça manque de précision quand même :crazy:
Résultat, ça pourra être utile à quelqu'un(e)
Image

Cordialement :)
Configuration Version 20H2 (build du système d'exploitation 19044.1415)
Asus portable et Acer Nitro 8 Go CPU I5 9400F GPU NVIDIA GeForce GTX 1650
Avatar de l’utilisateur
mwonex
Maître Libellulien
Maître Libellulien
 
Messages: 592
Inscription: 04 Mai 2013 16:05

Re: validation des donnes sur excel

Messagepar NATPAT » 21 Sep 2013 13:59

Bonjour

Merci pour vos reponses mais je reformule je veux faire une liste avec deux choix (chiffre;lettre) que cettre dernier controle l'affichage des donnés sur la cellule B : c'est à dire les chifres ou bien lettre selon le choix sur la 1ere cellule A

j'avais une commande mais dommande je me rappel plus .

avez-vous une solution simple et facile à faire

Merci
Avatar de l’utilisateur
NATPAT
 
Messages: 41
Inscription: 18 Nov 2012 21:58
Localisation: /www/root/

Re: Validation des données sur Excel

Messagepar gedeon1999 » 21 Sep 2013 17:40

Bonjour

C'est la fonction INDIRECT qui permet cela.
Avatar de l’utilisateur
gedeon1999
Modérateur
Modérateur
 
Messages: 2447
Inscription: 28 Nov 2007 23:06

Re: Validation des données sur Excel

Messagepar NATPAT » 21 Sep 2013 19:03

@gedeon1999 :chapeau, oui je me rappel mnt mille merci a vous tous
Avatar de l’utilisateur
NATPAT
 
Messages: 41
Inscription: 18 Nov 2012 21:58
Localisation: /www/root/


Retourner vers Développement, conception de sites web

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité