VB Excel: Boucle For Next ne s'arrête pas [Résolu]

Signaler
Messages postés
9
Date d'inscription
samedi 29 septembre 2007
Statut
Membre
Dernière intervention
7 janvier 2011
-
Messages postés
9
Date d'inscription
samedi 29 septembre 2007
Statut
Membre
Dernière intervention
7 janvier 2011
-
Bonjour,

Je suis confronté au même problème que Hadriennoel mais j'ai du mal à mettre en application les conseil de Jack.
Je conçois un planing:

Dans la feuil("ResultatRecherche") je sélectionne un nom de salarié dont la source est de feuil("Liste des salarié") puis validé par un bouton( voir le code ci-dessous).

Le code doit parcourir les feuils qui sont crées automatiquement au moment où on ajoute un nouveau et porte le nom correspondant comme feuil("NomPrenom")

Mon problème est que la boucle ne s'arrête pas, sa flash. J'ai besoin d'aide merci d'avance.

Code:

Private Sub CommandButton1_Click()
For i = 1 To Worksheets.Count

'MsgBox (Worksheets(i).Name)

If Feuil8.Range("A3") = Worksheets(i).Name Then
'Copier
Worksheets(i).Select
Selection.Range("A5:AN113").Copy

'Coller
Worksheets("ResultatRecherche").Select
Range("A5:AN113").Select
ActiveSheet.Paste
Exit For
Exit Sub
End If
Next i

End Sub

2 réponses

Messages postés
32994
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 juin 2021
351
Bonjour,
En regardant vite fait, j'ai apporté une ou deux petite correction à ton code.
Essayes celui-ci :
Private Sub CommandButton1_Click()
'Désactive le rafraichissement écran
Application.ScreenUpdating = False

'Boucle..................
For i = 1 To Worksheets.Count

'MsgBox (Worksheets(i).Name)

If Feuil8.Range("A3").Value = Worksheets(i).Name Then
'Copier
Worksheets(i).Select
Selection.Range("A5:AN113").Copy

'Coller
Worksheets("ResultatRecherche").Select
Worksheets("ResultatRecherche").Range("A5:AN113").Select
ActiveSheet.Paste
Exit For
Exit Sub
End If
Next i ' Suite de la bouclue....

'réactive le rafraichissement écran
Application.ScreenUpdating = True
End Sub



PS: Lorsque tu copie ton code sur le forum, utilises les balises de code (le troisieme bouton en partant de la droite

Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI
Messages postés
9
Date d'inscription
samedi 29 septembre 2007
Statut
Membre
Dernière intervention
7 janvier 2011

Je vous remercie infiniment, le code marche.

après visualisation de mon (copier coller) je constate que la plage copiée n'est pas stable. au lieu de sélectionner Range("A5:AN113") et copié, il décale carrément la plage à sélectionnée vers le Range("E5:AP113")

En deuxième point, comment mettre à jour la feuil correspondante feuil("NomPrenom") les modifications(des champs colorés apportées à la plage depuis feuil("ResultatRecherche")?

Comment générer un une série de feuils en parcourant une liste de nom qui sera le nom de la feuil, voici ce que j'ai fais mais sa ne marche pas!!!!
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

'Désactive le rafraichissement écran
Application.ScreenUpdating = False

For i = 2 To 39 'A la dernière ligne remplie
Sheets.Add After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = Feuil2.Cells(i, 4).Value + Feuil2.Cells(i, 5).Value
Next
'réactive le rafraichissement écran
Application.ScreenUpdating = True
End Sub


Merci d'avance pour tout aides.
Cordialement