Optimisation de macro
Résolu
pyrus2047
Messages postés
156
Statut
Membre
-
yg_be Messages postés 24281 Statut Contributeur -
yg_be Messages postés 24281 Statut Contributeur -
Sub ouest()
i = 0
date1 = Range("A1").Value
Do While date1 <= Range("A39").Value
If Weekday(date1) = 2 Then
i = i + 1
End If
date1 = date1 + 1
Range ("B1:B39") & DateDiff("ww", DateSerial(Year(date1), 1, 1), date1) + 1
Loop
End Sub
Bonjour,
si vous pouviez m'aider a corriger ma macro
dans la plage A1:A39 j'ai une liste de date don je souhaite récupéré dans la plage B1:B39
uniquement pour les lundi le n°de la semaine
merci
A voir également:
- Optimisation de macro
- Optimisation pc - Accueil - Utilitaires
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Optimisation découpe panneau gratuit - Télécharger - Outils professionnels
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
3 réponses
Bonjour,
Un truc du genre :
Un truc du genre :
Sub ouest() Dim plageDate As Range Dim wkb As Workbook Dim sh As Worksheet Dim R As Integer Dim C As Range Set wkb = ThisWorkbook Set sh = wkb.ActiveSheet Set plageDate = sh.Range("A1:A39") For Each C In plageDate If Weekday(C.Value) = 2 Then R = C.Row sh.Cells(R, 2).Value = CInt(Format(C.Value, "ww", 2)) End If Next End Sub
Tu pose en dictat que la ligne est systématiquement trouvée !
Et si ce n'est pas le cas ???? (If celluletrouvee is Nothing then ... )
Et si ce n'est pas le cas ???? (If celluletrouvee is Nothing then ... )
quand tu écris "j 'ai toujours cette ligne qui pose problème", reçois-tu un message d'erreur?
lequel?
suggestion:
lequel?
suggestion:
Dim numero As Integer Dim celluletrouvee As Range numero = Range("T1") Set celluletrouvee = Range("L2:L10").Find(numero) If not (celluletrouvee is Nothing) then ActiveWindow.ScrollRow = celluletrouvee.Row end if
merci beaucoup
j'ai un autre dysfonctionnement avec cette macro
Explications disponibles ici :ICI
Merci d'y penser dans tes prochains messages.Jordane45
Merci
Pour éviter les problèmes, tu devrais t'inspirer très largement de la façon, dont Jordane écrit ses macros :
- Pas de Select inutile
- Pas de Range non référencé (i.e Range("T1") oui mais de quelle feuille ?)
- Pas de valeur explicite (i.e au lieu de Range("T1") écrire Range("T1").Value)
- Ne pas utiliser Selection
- ....
Nb: ne mets pas de caractères accentués dans le nom de tes variables
j'ai en T1 une liste déroulante de numéro 1,2,3,4........
en colonne L j'ai une suite de numéro identique a la liste déroulante
je souhaite qu'a la selection d'un numéro dans la liste déroulant
on le recherche dans la colonne L et que la ligne ou il se trouve remonte en haut
de la feuille
j 'ai toujours cette ligne qui pose problème
ligne = celluletrouvee.Row
Cordialement