Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

usf dans boucle

  • Initiateur de la discussion Initiateur de la discussion flo2002
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

flo2002

XLDnaute Impliqué
re re bonjour,
dcidement une journée ou j'ai beaucoup besoin de vous....

j'ai un bout de macro comme suit (pas encore tester)

For Each x In Range("A14:A10000")
If x.Value = "FormE" Then
UserForm1.Show
Next x

et un usf en construction ou l'on selectionne dans une liste une valeur et en cliquant sur ok (commandbouton), la valeur choisit se met dans la cellule correspondant à x dans la macro.
Je ne vois pas trop comment mis prendre...
une idée?
Mon probleme est surtout de lui dire de "vider" la valeur ou il a trouver x....
merci d'avance!
 
Re : usf dans boucle

Bonsoir Flo2002, re Kobaya, le Forum

Moi je n'ai pas interprété de la même manière la demande de Flo...

Dans un Module Standard :

Code:
Option Explicit
[B][COLOR=blue]Public[/COLOR][/B] [B]TheCell[/B] [COLOR=blue][B]As Range[/B][/COLOR]

Sub TheBoucle()
Dim Cell As Range
For Each Cell In Range("A14:A100")
    If Cell.Value = "FormE" Then
        Set [B]TheCell[/B] = Cell
        UserForm1.Show
    End If
Next Cell
End Sub


Dans le Module du UserForm1 :

Code:
Option Explicit
Private Sub UserForm_Initialize()
[COLOR=green]'Juste pour avoir des trucs dans la ListeBox
[/COLOR]Dim i As Byte
    For i = 1 To 10
        Me.ListBox1.AddItem "Toto " & i
    Next
End Sub
 
Private Sub CommandButton1_Click()
If Me.ListBox1.ListIndex = -1 Then Exit Sub
    [B]TheCell[/B] = Me.ListBox1
    Unload Me
End Sub

Maintenant Si tu as 5000 fois "FormE" dans la colonne "A" tu vas user le click de ta souris !!! lol

Bonne fin de Journée
@+Thierry
 
Re : usf dans boucle

merci Kobaya mais je me suis mal exprimer je voulais dire mettre la valeur de la liste à tel endroit.... désolé

sinon pour le fichier faudrait que j'en fasse un exemple plus petit donc en attendant mes codes:


sur la macro:
UserForm1.Show, trés simple
et sur le bouton du usf:
For Each x In Range("A14:A10000")
If x.Value = "FormE" Then
Cells(x, 1) = Me.ListBox1.Value
Next x


Unload.Me

mais po encore tester....

une idée?
 
Re : usf dans boucle

Bojour Florent

Premier point, il manque le end if dans ton code indiqué, mais c'est de la bagatelle, comparè à ce que tu fais avec ta boucle. Je pense que tu t'y prends à l'envers, imagine que tu as 1000 cellules qui contiennent ta valeur test, tu vas faire 1000 fois l'opération d'affichage de l'userform, les procèdures initialisation, etc.

Tu devrais avoir une procèdure d'affichage du userform, dans la sub d'initialisation la recherche de la première cellule contenant ta valeur de test, et par le clic du bouton, tu affectes la cellule, et tu passes à la suivante, et ainsi de suite.

@+Jean-Marie
 
Re : usf dans boucle

En faite, c'est un truc comme ca que je voudrais faire mais mes capacités sont limités lol.
Je ne sais pas comment appréhender le pb.

bonsoir à tous, tant pis je verrais ca demain!
 
Re : usf dans boucle

deuxieme petite question ce matin,
j'ai dans mon usf un texte.
Ce texte devrais comporter une variable qui serais en faite en partant du code de Thierry un truc du genre
cell.offset(0,-2).value
je voudrais donc mettre ce code pour définir le texte d'une textbox dans mon usf, est ce possible???
merci d'avance!
 
Re : usf dans boucle

re bonjour à tous,
un petit probleme lié à l'option explicit je pense.
j'ai certain bout de macro qui ne fonctionne plus car il me dit que la variable n'est pas definit....

voici le bout qui coince
Sheets("XXX").Visible = True
Sheets("WWW").Select
derligne1 = Sheets("WWW").Range("E65536").End(xlUp).Row
derligne2 = Sheets("XXX").Range("I65536").End(xlUp).Row
For i2 = 1 To derligne2
For i1 = 12 To derligne1
If Sheets("WWW").Range("E" & i1) = Sheets("XXX").Range("I" & i2) Then
Exist = 1
GoTo Suivant
End If
Next
If Exist = 1 Then GoTo Suivant
Sheets("WWW").Range("E" & derligne1 + 1) = Sheets("XXX").Range("I" & i2)
derligne1 = Sheets("WWW").Range("E65536").End(xlUp).Row
Suivant:
Exist = 0
Next

donc en faite, je ne vois pas comment definir "suivant".
une idée?
 
Re : usf dans boucle


autre petite question, encore une, le tot doit definir la liste?
 
Re : usf dans boucle

Bonjour Flo

Ce n'est pas l'option Explicit, qui te pose problème, Suivant est une étiquette, pas besoin de la déclaré.

Je te propose un autre type de code, qui fait la même chose, sans les Goto, et des instructions inutiles.

Code:
Sub RecopielesInconnus()
Dim vPlgSource As Range
Dim vPlgDest As Range
Dim vCell As Range
Dim DerLigne As Long
Dim Pos As Variant

DerLigne = Sheets("WWW").Range("E65536").End(xlUp).Row + 1
Set vPlgDest = Sheets("WWW").Range("E:E")
Set vPlgSource = Sheets("XXX").Range("I1:I" & Range("I65536").End(xlUp).Row)
For Each vCell In vPlgSource
   Pos = Application.Match(vCell, vPlgDest, 0)
   If IsError(Pos) Then
      Sheets("WWW").Cells(DerLigne, 5) = vCell
      DerLigne = DerLigne + 1
   End If
Next
End Sub

@+Jean-Marie
 
Re : usf dans boucle

Merci Jean Marie, en effet, le probleme était sur le exist.Mais il a bien fallu que je definisse toute mes variables.
merci encore pour ton code je le mets de coté, car la je suis super à la bourre et vu que mon code marche je vais pas insister. Merci encore!
 
Re : usf dans boucle

Salut à tous
Juste une astuce : la 1re lettre de tes variable en majuscules
comme tu tapes en minuscules, quand tu sorts de la ligne, Excel met la majuscule, tout seul, comme un grand si ta variable est déclarée
A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
454
  • Question Question
Microsoft 365 USF Agenda
Réponses
20
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…