Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Ajouter une formule en fonction d une cellule

3 réponses
Avatar
Benoît MICHEL
Bonjour,

Je rencontre un petit problème lors de la création d une macro.
Je souhaite ajouter une formule ( =NO.SEMAINE(F1) )dans une cellule exemple
H1 si F1 est renseigné. et le faire sur toute la feuille.

En fait je souhaite faire un traitement ligne par ligne sur la feuille.

Je vous remercie par avance de votre aide.

Cordialement

BntMICHEL

3 réponses

Avatar
michdenis
Adapte le nom de la feuille dans la procédure

'------------------------------------
Sub test()
Dim Rg As Range
With Worksheets("Feuil1")
Set Rg = .Range("F:F").SpecialCells(xlCellTypeConstants, 23)
End With
With Rg
.Offset(, 2).FormulaLocal = "=No.Semaine(" & .Item(1).Address(0, 0) & ")"
End With
End Sub
'------------------------------------



"Benoît MICHEL" a écrit dans le message de news:
Bonjour,

Je rencontre un petit problème lors de la création d une macro.
Je souhaite ajouter une formule ( =NO.SEMAINE(F1) )dans une cellule exemple
H1 si F1 est renseigné. et le faire sur toute la feuille.

En fait je souhaite faire un traitement ligne par ligne sur la feuille.

Je vous remercie par avance de votre aide.

Cordialement

BntMICHEL
Avatar
Benoît MICHEL
Bonjour

merci pour votre réponse.

j ai testé cela aussi par la même occasion.

Dim i As Integer
i = 2
While Not IsEmpty(Cells(i, 6))
Cells(i, 7).Select
'ajouter la formule de calcul de numero de semaine
ActiveCell.FormulaR1C1 = "=NO.SEMAINE(RC[-1])"
i = i + 1
Wend
Range("H2").Select


cependant je rencontre un problème car ensuite je voudrais que la macro
detect la fin de mon tableau et le selectionne en entier pour ensuite faire
un tableau croisé dynamique.

mais je n arrive pas a trouvé les ligne de code pour qu il recherche la fin
de mon tableau au niveau des colonnes et des lignes pour ensuite me faire
une selection de ce tableau !

Pouvez vous me venir en aide?

Je vous remercie.

Cordialement
BntMICHEL


"michdenis" a écrit dans le message de groupe de
discussion :
Adapte le nom de la feuille dans la procédure

'------------------------------------
Sub test()
Dim Rg As Range
With Worksheets("Feuil1")
Set Rg = .Range("F:F").SpecialCells(xlCellTypeConstants, 23)
End With
With Rg
.Offset(, 2).FormulaLocal = "=No.Semaine(" & .Item(1).Address(0, 0) &
")"
End With
End Sub
'------------------------------------



"Benoît MICHEL" a écrit dans le message de news:

Bonjour,

Je rencontre un petit problème lors de la création d une macro.
Je souhaite ajouter une formule ( =NO.SEMAINE(F1) )dans une cellule
exemple
H1 si F1 est renseigné. et le faire sur toute la feuille.

En fait je souhaite faire un traitement ligne par ligne sur la feuille.

Je vous remercie par avance de votre aide.

Cordialement

BntMICHEL



Avatar
Benoît MICHEL
je vais travailler sur votre support

je vous remercie.

Cordialement
BNtMICHEL

"michdenis" a écrit dans le message de groupe de
discussion :
Voici un bout de code que tu dois adapter à ton environnement
pour créer un TDC à partir d'une table de données excel

'---------------------------------------
Sub PivotTable()
Dim Adr As String 'Source
Dim DerLig As Long
Dim PT As PivotTable

With Worksheets("Feuil3")
'Déterminer la dernière ligne des colonnes de la plage spécifiée
'où sont les données
DerLig = .Range("A:B").Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
'Définir où sont les données pour le pivotcache
Adr = .Name & "!" & .Range("A1:B" & DerLig).Address
End With

'Création du PivotTable
With ThisWorkbook.PivotCaches.Add(SourceType:=xlDatabase, _
SourceData:=Range(Adr))
Set PT = .CreatePivotTable(TableDestination:= _
Worksheets("Feuil2").Range("B4"), _
TableName:="Denis")
End With

'Exemple façon de définir les champs de ton tdc
'Évidemment, je suppsoe que ton tableau a plus de 2 champs !
With PT
.AddFields RowFields:="Élève"
.PivotFields("résultat").Orientation = xlDataField
End With
End Sub
'---------------------------------------




"Benoît MICHEL" a écrit dans le message de news:

Bonjour

merci pour votre réponse.

j ai testé cela aussi par la même occasion.

Dim i As Integer
i = 2
While Not IsEmpty(Cells(i, 6))
Cells(i, 7).Select
'ajouter la formule de calcul de numero de semaine
ActiveCell.FormulaR1C1 = "=NO.SEMAINE(RC[-1])"
i = i + 1
Wend
Range("H2").Select


cependant je rencontre un problème car ensuite je voudrais que la macro
detect la fin de mon tableau et le selectionne en entier pour ensuite
faire
un tableau croisé dynamique.

mais je n arrive pas a trouvé les ligne de code pour qu il recherche la
fin
de mon tableau au niveau des colonnes et des lignes pour ensuite me faire
une selection de ce tableau !

Pouvez vous me venir en aide?

Je vous remercie.

Cordialement
BntMICHEL


"michdenis" a écrit dans le message de groupe de
discussion :
Adapte le nom de la feuille dans la procédure

'------------------------------------
Sub test()
Dim Rg As Range
With Worksheets("Feuil1")
Set Rg = .Range("F:F").SpecialCells(xlCellTypeConstants, 23)
End With
With Rg
.Offset(, 2).FormulaLocal = "=No.Semaine(" & .Item(1).Address(0, 0) &
")"
End With
End Sub
'------------------------------------



"Benoît MICHEL" a écrit dans le message de news:

Bonjour,

Je rencontre un petit problème lors de la création d une macro.
Je souhaite ajouter une formule ( =NO.SEMAINE(F1) )dans une cellule
exemple
H1 si F1 est renseigné. et le faire sur toute la feuille.

En fait je souhaite faire un traitement ligne par ligne sur la feuille.

Je vous remercie par avance de votre aide.

Cordialement

BntMICHEL