1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| Sub doc_funkiBis()
Dim Liste As Range
Dim Ad As Range
Dim Plage As String
Dim LeFichier As Workbook
Dim LaFeuille as Worksheet
'Donc, tous tes fichiers sont ouverts
'Je suppose que tu travailles sur une seule feuille puisque...
'... ton fichier émane d'un .txt
'Plage = Application.InputBox(prompt:="sélectionnez les cotes capa", Type:=8)
'De mon côté, je prends une plage bidon et, pour chaque classeur ouvert,
'l'instancie et réalise les opérations
Plage = "B14:D14,A21:D21,D3,D5,E5,F5,G3"
For Each LeFichier In Application.Workbooks
Debug.Print LeFichier.Name
Set LaFeuille = LeFichier.Worksheets("Feuil1")
Debug.Print LaFeuille.Name
Set Liste = LaFeuille.Range(Plage)
For Each LaCellule In Liste
Debug.Print LaCellule.Row
'j'entre dans une boucle pour travailler sur chaque fichier,
'... sur les cellules de la liste
'Ma question : Tu travailles sur chaque cellule de la plage ?
'Si oui, c'est ici !
'Attention : on ne travaille que sur les lignes des cellules...
'... de la liste, et ça, je ne suis pas sûr d'avoir bien compris (???)
If Cells(LaCellule.Row, 17) < 0 Then Cells(LaCellule.Row, 17).FormulaR1C1 = "=ABS(RC[-1])"
Cells(LaCellule.Row, 18) = Cells(LaCellule.Row, 17)
'Si tu travailles sur les cellules de la liste, tu dois mettre
If Cells(LaCellule.Row, LaCellule.Column) < 0 Then LaCellule.FormulaR1C1 = "=ABS(RC[-1])"
Next 'On passe à la cellule suivante
Set LaFeuille = Nothing
Set Liste = Nothing
Next 'On passe au fichier suivant
End Sub |
Partager