Automatiser fonction no.semaine

Bonjour,

Fichier en PJ dans la colonne A = des dates et dans la colonne B le numéro de semaine qui correspond.

Je souhaite enlever les formules NO.SEMAINE afin de mettre la formule dans une macro et ainsi qu'à chaque fois qu'une date est renseignée en colonne A, que le n° de semaine s'inscrive.

J'ai essayé, ci-dessous, de faire une macro, mais je recherche comment l'adapter afin de répondre à ma problématique.

Sub Macro1()

'' Macro1 Macro

'

Range("B2").Select

ActiveCell.FormulaR1C1 = "=WEEKNUM(RC[-1])"

End Sub

Merci d'avance,

28no.xlsm (12.78 Ko)

Bonjour

à mettre en feuil1

Private Sub Worksheet_Change(ByVal Target As Range)
Cancel = True
    If Target.Column = 1 Then
      If Cells(Target.Row, 1).Value <> "" Then
        Cells(Target.Row, 2).Value = Application.WorksheetFunction.WeekNum(Cells(Target.Row, 1).Value,21)
      End If
    End If
End Sub

Bonsoir,

La fonction NO.SEMAINE ne fournit pas le numéro de semaine répondant à la norme ISO 8601 en vigueur en Europe.

Cordialement.

M12 a écrit :

Bonjour

à mettre en feuil1

Private Sub Worksheet_Change(ByVal Target As Range)
Cancel = True
    If Target.Column = 1 Then
      If Cells(Target.Row, 1).Value <> "" Then
        Cells(Target.Row, 2).Value = Application.WorksheetFunction.WeekNum(Cells(Target.Row, 1).Value,21)
      End If
    End If
End Sub

Bonjour M12,

Merci pour ce retour, je vais tester. Je me débrouille niveau macro mais ne sais pas comment les transposer en VBA afin de ne pas faire figurer les formules. A part apprendre, y a t'il des moyens de transposer les formules en VBA, c'est à dire passer de ma formule à la votre ?

Merci d'avance

ReBonsoir,

y a t'il des moyens de transposer les formules en VBA

En respectant la syntaxe de la méthode WorksheetFunction de l'objet Application, laquelle permet l'utilisation de fonctions Excel pour renvoyer leur résultat...

Et petit complément à mon post précédent : ton utilisation de la fonction dans ton fichier renvoie un numéro selon la numérotation américaine, alors que M12, en l'assortissant en 2e argument du paramètre 21 vise le renvoi selon la norme européenne, introduit dans cette fonction avec la version Excel 2010.

Cordialement.

Bonjour,

Pourquoi vouloir remplacer une fonction sur feuille qui sera toujours nettement plus rapide que son équivalent en vba ???

MFerrand, avec le paramètre ,21) c'est conforme ISO

eric

MFerrand a écrit :

ReBonsoir,

y a t'il des moyens de transposer les formules en VBA

En respectant la syntaxe de la méthode WorksheetFunction de l'objet Application, laquelle permet l'utilisation de fonctions Excel pour renvoyer leur résultat...

Et petit complément à mon post précédent : ton utilisation de la fonction dans ton fichier renvoie un numéro selon la numérotation américaine, alors que M12, en l'assortissant en 2e argument du paramètre 21 vise le renvoi selon la norme européenne, introduit dans cette fonction avec la version Excel 2010.

Cordialement.

Merci

Salut Eric !

MFerrand, avec le paramètre ,21) c'est conforme ISO

Oui ! C'est ce que j'ai dit dans mon dernier post, mais 21 n'était pas dans la formule initiale...

Bonne soirée.

mcj1997 a écrit :
M12 a écrit :

Bonjour

à mettre en feuil1

Private Sub Worksheet_Change(ByVal Target As Range)
Cancel = True
    If Target.Column = 1 Then
      If Cells(Target.Row, 1).Value <> "" Then
        Cells(Target.Row, 2).Value = Application.WorksheetFunction.WeekNum(Cells(Target.Row, 1).Value,21)
      End If
    End If
End Sub

Bonjour M12,

Merci pour ce retour, je vais tester. Je me débrouille niveau macro mais ne sais pas comment les transposer en VBA afin de ne pas faire figurer les formules. A part apprendre, y a t'il des moyens de transposer les formules en VBA, c'est à dire passer de ma formule à la votre ?

Merci d'avance

Bonjour

Je viens de faire le test et cela ne fonctionne pas.

Bonne journée

Re,

A tester

53no.xlsm (13.92 Ko)
M12 a écrit :

Re,

A tester

Merci pour le fichier, effectivement cela fonctionne, j'ai recommencé en copiant le programme et cela se met en rouge entre la ligne Private sub et le End ?

Re

Regarde si tu utilises les mêmes colonnes

M12 a écrit :

Re

Regarde si tu utilises les mêmes colonnes

Je viens de recopier la formule dans mon fichier (en PJ) en l'adaptant, toutefois j'ai une erreur de compilation sur la ligne Cancel = True,

Merci d'avance,

25no-semaine.xlsm (23.19 Ko)
Rechercher des sujets similaires à "automatiser fonction semaine"