Une macro qui me demande le nombre d'agrément

Résolu
Qhes Messages postés 176 Date d'inscription   Statut Membre Dernière intervention   -  
Qhes Messages postés 176 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

j'ai une macro qui fait une action pour les ligne 2 à 10000...

J'aimerais savoir si c'est possible que plutot qu'elle fasse toujours de 2 à 10 000 elle me demande a quelle ligne je veux qu'elle s'arrete

avec une boite de dialogue ou je ne sais quoi :)


voici ma macro :


Sub fie()

On Error Resume Next

Application.ScreenUpdating = False

Workbooks.Open Filename:= _
"\\Nief3\environn\Risque Chimique\Exposition\LSE FIE AIE\Vierge\FIE modèle.xls"

For i = 2 To 10000
Workbooks("Macro.xls").Activate
Cells(i, 1).Select
a = ActiveCell.Value
e = "n" & a
Cells(i, 2).Select
b = ActiveCell.Value

Workbooks("FIE modèle.xls").Activate
Sheets(e).Select

If FeuilleExiste(e) = True Then
Range("O37").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP('[Macro.xls]Etape 3 - 5'!R" & i & "C3,RC[-14]:R[87]C[-1],14,0)"
d = ActiveCell.Value + 36
Cells(d, 10).Select
ActiveCell.Value = b
Range("O37").Select
ActiveCell.Value = ""

Else
MsgBox ("la feuille " & e & " n'existe pas")
End If
Next i

Workbooks("FIE modèle.xls").Activate
For j = 3 To Sheets.Count
Sheets(j).Select
Rows("37:116").Select
Selection.Sort Key1:=Range("J37"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("A36").Select
Next j

Application.ScreenUpdating = True

MsgBox ("!!!!IMPERATIF!!!!" & vbCr & "Enregister-sous ce fichier immédiatement afin de le renommer :" & vbCr & "FIE modèle -> FIE (année étudiée)" & vbCr & "exemple : FIE 2008" & vbCr & " " & vbCr & "Puis quitter sans enregister")

Application.GetSaveAsFilename ("FIE " & Year(Date))

End Sub



A voir également:

2 réponses

Mike-31 Messages postés 18407 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Salut,

Tu peux faire simple exemple en B2 tu saisis le numéro ligne ou tu crées une liste déroulante dans laquelle tu affiches le numéro ligne

et tu modifies ta ligne

For i = 2 To [B2]

Ou tu fais un balayage depuis la ligne 65536 et ta macro fonctionne sur les lignes renseignées de ton tableau

For i = 2 To Range("A65536").End(xlUp).Row

Il est également possible d'ajouter une inputbox (boite de dialogue) dans laquelle on saisi le numéro ligne mais cela alourdira un peu ton code
A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
1
Qhes Messages postés 176 Date d'inscription   Statut Membre Dernière intervention   29
 
Merci ca y est ca fonctionne bcp mieux avec ce que tu me propose :)

Merci beaucoup
0