begin process at 2012 02 13 01:04:25
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Langages dérivés

 > 

VBA

 > 

bazar de mélange de collection, propriétés, conditions en vba-excel


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

bazar de mélange de collection, propriétés, conditions en vba-excel

lundi 10 juillet 2006 à 11:22:13 | bazar de mélange de collection, propriétés, conditions en vba-excel

larsene67

bon ,maintenant, je commence à patauger, si quelqu'un pouvait m'aider sur ce bout de code que je n'arrive pas à faire marcher:
(suite de http://www.vbfrance.com/infomsg_RECUPERER-PROPRIETE-ELEMENT-COLLECTION-TRAVERS-PARAMETRE-FONCTION-VBA_775175.aspx#3 )
Public Liste As New Collection
Public regEx As New VBScript_RegExp_55.RegExp 'New RegExp

Sub sub1()
Dim machin As New Classe1

machin.nom = "CHRIST"
machin.prénom = "Jesus"
machin.age = "33 ans"
Liste.Add machin
Set machin = Nothing

machin.nom = "LUCAS"
machin.prénom = "GEORGES"
machin.age = "50 ans"
Liste.Add machin
Set machin = Nothing

machin.nom = "DES BATIGNOLES"
machin.prénom = "Marie-thérese"
machin.age = "75 ans"
Liste.Add machin
Set machin = Nothing

machin.nom = "DES BATIGNOLES"
machin.prénom = "Marie-thérese"
machin.age = "73 ans"
Liste.Add machin
Set machin = Nothing

'condition = "Liste(i).nom = "DES BATIGNOLES" and Liste(i).age = "75 ans"
Condition = Chr(34) & "Liste(i).nom" & Chr(34) & "=" & Chr(34) & "DES BATIGNOLES" & Chr(34)
result = sub2(Liste, Condition)

End Sub

Private Function sub2(Liste As Collection, ByVal Condition As String)
Dim r As New ScriptControl
r.Language = "vbscript"
Set regEx = New RegExp
regEx.Pattern = "(Liste\(i\))(\.\S+)"

For i = 1 To Liste.Count
    sub2 = regEx.Replace(Condition, CallByName(Liste(i), "$2", VbGet))
    If r.Eval(sub2) Then
        MsgBox sub2
    End If
Next i

End Function

lundi 10 juillet 2006 à 11:37:06 | Re : bazar de mélange de collection, propriétés, conditions en vba-excel

larsene67

bon, je trouve pas comment modifier ma question, alors je reposte le code, plus prooche de ce que je veux faire:


Public Liste As New Collection
Public regEx As New VBScript_RegExp_55.RegExp 'New RegExp

Sub sub1()
Dim machin As New Classe1

machin.nom = "CHRIST"
machin.prénom = "Jesus"
machin.age = 33
Liste.Add machin
Set machin = Nothing

machin.nom = "LUCAS"
machin.prénom = "GEORGES"
machin.age = 50
Liste.Add machin
Set machin = Nothing

machin.nom = "LUCAS"
machin.prénom = "Gérard"
machin.age = 50
Liste.Add machin
Set machin = Nothing

machin.nom = "DES BATIGNOLES"
machin.prénom = "Marie-thérese"
machin.age = 75
Liste.Add machin
Set machin = Nothing

machin.nom = "DES BATIGNOLES"
machin.prénom = "Marie-thérese"
machin.age = 73
Liste.Add machin
Set machin = Nothing

machin.nom = "DES BATIGNOLES"
machin.prénom = "Marie-thérese"
machin.age = 120
Liste.Add machin
Set machin = Nothing

'si la ligne precedente a le meme nom, et l'age est inférieur à 100ans, on la vire
Condition = "Liste(j).nom = Liste(i).nom Or Liste(i).age > " & Chr(34) & "100" & Chr(34)
sub2 Liste, Condition

Debug.Print Liste.Count
End Sub

Private Function sub2(Liste As Collection, ByVal Condition As String)
Dim r As New ScriptControl
r.Language = "vbscript"
Set regEx = New RegExp
regEx.Pattern = "(Liste\(i\))(\.\S+)"

Do While i <= Liste.Count
    For j = 1 To i - 1
        Condition2 = regEx.Replace(Condition, CallByName("$1" & "($2)", "$3", VbGet))
        If r.Eval(Condition2) Then
            Liste.Remove (i)
            i = i - 1
            Exit For
        End If
    Next j
    i = i + 1
Loop

End Function

lundi 10 juillet 2006 à 11:56:18 | Re : bazar de mélange de collection, propriétés, conditions en vba-excel

larsene67

Encore un essai qui ne marche toujours pas :(:( :

Private Function sub2(Liste As Collection, ByVal Condition As String)
Dim r As New ScriptControl
r.Language = "vbscript"
Set regEx = New RegExp
Set Regex2 = New RegExp
regEx.Pattern = "(Liste)(\([ij]\))(\.)(\S+)"
Regex2.Pattern = regEx.Pattern

Do While i <= Liste.Count
    For j = 1 To i - 1
        For Each tmp In regEx.Execute(Condition)
            tmp2 = Regex2.Replace(tmp, "$1$2")
            tmp3 = Regex2.Replace(tmp, "$4")
            tmp4 = Regex2.Replace(Condition, CallByName(tmp2, tmp3, VbGet))
            Condition = regEx.Replace(Condition, tmp4, VbGet)
        Next tmp
        If r.Eval(Condition) Then
            Liste.Remove (i)
            i = i - 1
            Exit For
        End If
    Next j
    i = i + 1
Loop

End Function



Cette discussion est classée dans : liste, age, machin, condition, ans


Répondre à ce message

Sujets en rapport avec ce message

Base de donnée : j'ai un problème [ par LEAU ] Bonjour, j'ai un problème j'ai une base de donnée simple, avec trois colones : nom, prénom, et ageJe voudrais pouvoir créer une liste de choix qui se condition sur zone de liste modifiable [ par d_zyl ] Salut, voila mon souci : dans un formulaire, j'ai deux zones de liste modifiable . la première donne les choix A,B et C et la deuxième donne les choix donner une valeur par défaut à une liste déroulante ne contenant pas cette valeur [ par nanach ] bonjour tout le monde ^^ petit souci sur vba (youpie) que je vous explque : ) j'ai une liste déroulante qui me fournit des ages quinquénale (0-5-10 trier une collection vba-excel [ par larsene67 ] bon, on va essayer une approche différente de mon problème: soit la collection suivante:(Dans class1:)Public nom, prénom, age(dans module1:)<font face Affichage liste sous condition [ par horazon ] Bonjour à tous je suis débutant sous excel et VB pourtant il faudrait que je fasse un fichier regroupant pas mal d'informations.Je voudrais si possibl condition sur valeur par défaut d'une liste déroulante [ par chamttt ] Bonjour à tous, J'ai un soucis avec une liste déroulante, je souhaite faire apparaitre un msgbox en cas de non saisi d'une donnée dans la liste par condition sur celle excel en vba [ par thibaultanguy ] [^^happy10]Bonjours à tous et joyeuses fêtes J'ai developpé une liste de service sur excel avec un userform me permettant d'y porter les congés (CA) e Passer une condition à une sub comme paramètre string [ par larsene67 ] Bonjour, J'ai un programme qui repete regulierement une boucle conditionelle mais avec une condition différente. Afin de simplifier celui-ci, j'ai vou Condition pour retour à la ligne introuvable ... [ par Pinzut77 ] Bonjour,Voici une macro qui permet de mettre info de contact de ma colonne sur une ligne mais voila je ne trouve pas de condition pour aller à la lign Remplir Liste [ par tedparker ] Bonjour,J'ai récupéré une liste de fichiers avec leur chemin courant et j'aimerai ensuite remplir une sorte de zone de liste avec ces fichiers et perm


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,184 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales