Formule Array

Bonjour

Quand j'utilise cette fonction : For each Nom in Array ("bouton power","bouton deph","bouton machin","bouton truc")

je suis obligé de nommer tous les boutons, est ce qu'il y a moyen d'utiliser "bouton * " ou "bouton %"

Juste car il y a énormément de possibilité de recherche et il va me falloir des plombes pour toutes les rentrer dans mon tableau Array.

Merci d'avance d'éclairer ma lanterne.

Bonjour,

Essaye d'adapter ce code suivant :

For Each obj In UserForm1.Controls
    If TypeName(obj) = "CommandButton" Then
        'traitement
    End If
Next obj

bonjour

à tester

for each c in me.controls

if c.name like "bouton*" then

'traitement pour ce bouton

end if

next

Avec ça

Il faudrait que je sache déclarer une userform (mais je ne le sais point)

For Each obj In UserForm1.Controls

If TypeName(obj) = "CommandButton" Then

'traitement

End If

Next obj

Avec ça :

for each c in me.controls

if c.name like "bouton*" then

'traitement pour ce bouton

end if

next

j'ai une erreur sur Me : erreur de compilation : utilisation incorrecte du mot clé Me

merci bien quand même

si tes boutons sont sur feuil1

essaie avec

for each c in sheets("feuil1").controls

Membre de méthode ou de donnée introuvable

sur le .controls

For Each C In oShSource.Controls

If C.Name Like "bouton*" Then


ok ça passe si j'utilise sheets("DFI")


Erreur execution '438'

Propriété ou methode non géré par cet objet

avec cette ligne en jaune

For Each C In Sheets("DFI").Controls


c doit etre déclaré en variant ou en onject, mais je le definis à partir de quoi je pense n'avoir rien compris

si tes boutons sont des activeX

essaie

for each c in sheets("feuil1").oleobjects

sinon

for each c in sheets("feuil1").shapes

ah ok mais non,

les boutons c'est du texte dans une colonne, (milles excuses si je t'ai enduits d'erreur)

Dans la colonne G de la feuille1 (DFI) j'ai 10000 lignes avec tout le journal des erreurs de mon système. Certains sont plus critique que d'autres.

Je recherche donc dans cette colonne tout ce qui commence par shutdown ou tout ce qui commence Botton pressed KC:01

Ce qui est bizarre c'est qu'avec cette boucle il me les trouve bien tous , mais quand je veux les copier pour les mettre dans la feuille de synthèse et faire un lien hyperlink je suis obligé de définir chacun des noms recherchés avec le bon espace, si il est en majuscule ou en minuscule, si il y a un espace ou deux ......

For Each Nom In Array("Power button event received", "startup COMPLETED", "RFM", "RTF", "RSX", "RTV", "MDM", "ButtonPressed")

Cells.Select

With Application.ReplaceFormat.Interior

.PatternColorIndex = xlAutomatic

.Color = 52000

.TintAndShade = 0

.PatternTintAndShade = 0

End With

Selection.Replace What:=Nom, Replacement:=Nom, LookAt:=xlPart _

, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _

ReplaceFormat:=True

Next


Et donc , comme quoi le fait d'écrire fait du bien la boucle qui ne marche pas comme je le voudrais c'est celle là

For Each Nom In Array( "Power button event received, opening shutdowndlg", "startup COMPLETED: SW: ", "RestartApplication initiated", "RestartApplication requested by language change", "startup INITIATED ", "SHUTDOWN STARTED", "CRASH - Unhandled exception:")

Application.ScreenUpdating = False

Set oShSource = Worksheets("DFI")

Set oShDest = Worksheets("Synthèse")

iLue = 2

iEcr = oShDest.Range("A" & Rows.Count).End(xlUp).Row + 1

bFin = False

While Not bFin

If oShSource.Range("A" & iLue).Value = "" Then

bFin = True

Else

If oShSource.Range("G" & iLue).Text = Nom Then

oShSource.Rows(iLue).Copy

oShDest.Range("A" & iEcr).PasteSpecial xlPasteAll

Application.CutCopyMode = False

With oShDest

.Hyperlinks.Add .Range("A" & iEcr), "", "'DFI'!G" & iLue

End With

iEcr = iEcr + 1

iLue = iLue + 1

Else

'ligne suivante

iLue = iLue + 1

End If

End If

Wend

Next

Je dois surement ajouter un truc du style : MatchCase:=False, SearchFormat:=False,

Non ?

bonjour,

essaie ceci

 For Each Nom In Array( "Power button event received, opening shutdowndlg", "startup COMPLETED: SW: ", "RestartApplication initiated", "RestartApplication requested by language change", "startup INITIATED ", "SHUTDOWN STARTED", "CRASH - Unhandled exception:")
     nom=ucase(nom)
        Application.ScreenUpdating = False
        Set oShSource = Worksheets("DFI")
        Set oShDest = Worksheets("Synthèse")
        iLue = 2
        iEcr = oShDest.Range("A" & Rows.Count).End(xlUp).Row + 1
        bFin = False
        While Not bFin
            If oShSource.Range("A" & iLue).Value = "" Then
            bFin = True
            Else
                If ucase(oShSource.Range("G" & iLue).Text) = Nom Then
                oShSource.Rows(iLue).Copy
                oShDest.Range("A" & iEcr).PasteSpecial xlPasteAll
                Application.CutCopyMode = False
                With oShDest
                .Hyperlinks.Add .Range("A" & iEcr), "", "'DFI'!G" & iLue
                End With
                iEcr = iEcr + 1
                iLue = iLue + 1
                Else
            'ligne suivante
                iLue = iLue + 1
                End If
            End If
        Wend

     Next

Ok merci ça marche pour les upper et lower case (majuscules et minuscules

mais pour Startup completed et startup initiated j'ai quand meme besoin de mettre les 2 dans le Array.

Bon ce n'est pas grave, ça mettra un peu plus de temps mais bon ça m'avance déjà beaucoup comme ça.

Je te laisse répondre si besoin sinon je passera en résolu ce soir.

Merci encore

Je pense qu'on y est pas loin mais ce n'est pas grave...

J'ai trouvé ça sur la toile il ne me reste plus qu'à l'adapter mais autant c'est jouable, car le MatchCase:=False me permettrait de chercher juste une partie du mot que je veux .

je vous tiendrais au courant

Cells.Find(What:="Valeur", After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate

rebonjour,

solution pour le texte(nom) à chercher en début de phrase.

For Each Nom In Array( "Power button event received, opening shutdowndlg", "startup", "RestartApplication initiated", "RestartApplication requested by language change",  "SHUTDOWN STARTED", "CRASH - Unhandled exception:")
     nom=ucase(nom)
        Application.ScreenUpdating = False
        Set oShSource = Worksheets("DFI")
        Set oShDest = Worksheets("Synthèse")
        iLue = 2
        iEcr = oShDest.Range("A" & Rows.Count).End(xlUp).Row + 1
        bFin = False
        While Not bFin
            If oShSource.Range("A" & iLue).Value = "" Then
            bFin = True
            Else
                If left(ucase(oShSource.Range("G" & iLue).Text),len(Nom)) = Nom Then
                oShSource.Rows(iLue).Copy
                oShDest.Range("A" & iEcr).PasteSpecial xlPasteAll
                Application.CutCopyMode = False
                With oShDest
                .Hyperlinks.Add .Range("A" & iEcr), "", "'DFI'!G" & iLue
                End With
                iEcr = iEcr + 1
                iLue = iLue + 1
                Else
            'ligne suivante
               iLue = iLue + 1
                End If
            End If
        Wend

     Next

 

Yes MErci beaucoup,

Comme quoi quand je m'explique bien tu me trouves la solution.

Danke, Gracié, Gracias, Thanks, Merci ........

Rechercher des sujets similaires à "formule array"