OVH Cloud OVH Cloud

suite recopie vers le bas ...

3 réponses
Avatar
af
Bonjour,

L'autre jour, une personne m'a donné une solution qui fonctionne bien pour
une colonne.
Je souhaite m'en servir pour d'autres et ca ne fonctionne pas .... !!!!
pourquoi !!

Principe :
* étape 1 : une plage de données de A:J
* étape 2 : insertion d'une colonne A (ancienne plage passe de B:K)
* étape 3 : comptage du nombre de lignes sur la colonne B
* étape 4 : étire la valeur sur la colonne A
jusque là tout est ok ...
* étape 5 : je veux me servir du comptage précédent pour étirer une formule
en colonne L
Comment faire sur la macro ci-dessous ?



' mise en forme du fichier exporté
Columns("I:J").Select
Selection.Delete Shift:=xlToLeft
Columns("A:A").Select
Selection.Insert Shift:=xlToRight
' colonne A
Range("A1").Select
ActiveCell.FormulaR1C1 = "GES"
Dim PLAGE1 As String
Range("B1").Select
PLAGE1 = Range(Selection, Selection.End(xlDown)).Select

Worksheets("sage").Activate
areaCount = Selection.Areas.Count
If areaCount <= 1 Then
MsgBox "The selection contains " & _
Selection.Rows.Count & " lignes."
Else
i = 1
For Each a In Selection.Areas
MsgBox "Area " & i & " of the selection contains " &
_
a.Rows.Count & " lignes."
i = i + 1
Next a
End If

ppcol = Selection.Columns.Count
pplign = Selection.Rows.Count
For i = 2 To pplign
pptemp = "GES" 'formule
Cells(i, ppcol).Formula = pptemp
Next i


' colonne L
Range("L1").Select
ActiveCell.FormulaR1C1 = "=+IF(+RC[2]<>"" "",1,"" "")"
ppcol = Selection.Columns.Count
pplign = Range("L1").Select
' ca laisse juste le 1 sur la première cellule mais pas d'étirement de la
formule
For i = 2 To Range("L1").Select
pptemp = "=+IF(+RC[2]<>"" "",1,"" "")" 'formule
Cells(i, ppcol).Formula = pptemp
Next i

3 réponses

Avatar
Philippe Noss
Bonjour
Erreur de syntaxe dans la boucle, essaie plutot
For i = 2 To Range("L1").End(xlDown).Row

mais pour l'etiezment vers le bas c encore mieux d'utliser AUTOFILL

Range("L1").AutoFill Destination:=Range("L1",
Range("L1").End(xlDown).Offset(0, -1).Address)

Philippe NOSS
http://nossphil.perso.cegetel.net/exoutils.html
Avatar
af
Dans la première réponse, si je mets xldown, ca va jusqu'à 65000.





"Philippe Noss" a écrit dans le message de news:

Bonjour
Erreur de syntaxe dans la boucle, essaie plutot
For i = 2 To Range("L1").End(xlDown).Row

mais pour l'etiezment vers le bas c encore mieux d'utliser AUTOFILL

Range("L1").AutoFill Destination:=Range("L1",
Range("L1").End(xlDown).Offset(0, -1).Address)

Philippe NOSS
http://nossphil.perso.cegetel.net/exoutils.html



Avatar
Philippe Noss
Bonjour
Erreur de syntaxe dans la boucle, essaie plutot
Bien sur, il faut faire le end(Xldown) sur une colonne non vide !!!

For i = 2 To Range("K1").End(xlDown).Row


de meme pour l' AUTOFILL


Range("L1").AutoFill Destination:=Range("L1",
Range("K1").End(xlDown).Offset(0, 1).Address)