Format date par défaut après lancement macro

Bonjour,

J'ai besoin d'aide, cela fait 3 jours que je tourne en rond pour la résolution de mon problème.

Si de bonnes âmes m'accordaient un peu d'attention, j'en serais ravie et je les en remercie par avance.

J'ai élaboré un fichier avec une macro pour la mise à jour d'un onglet de synthèse à partir d'onglet du même classeur.

Il y a des numéros d'action identiques dans les différents onglets (incrémentation de 1 à x) ; or pour différencier dans la feuille de synthèse les numéros d'action des différents onglets, j'en crée un avec la macro qui associe le numéro affecté à un onglet + " - " + le numéro de l'action.

Les résultats sont corrects pour certains provenant de certains onglets mais pas pour d'autres : il y a une mise en format de date personnalisée qui s'applique. J'ai essayé de contourner le problème avec une ligne de script supplémentaire mais en vain.

Évidemment, j'ai vérifié les formats (en standard) dans tous les onglets.

Voici la macro :

Option Explicit

Sub update()

Dim number As Integer, Start As Long, cellule As Range, plage As Range, nb As Integer, ws1 As Worksheet, dl1 As Integer, i As Integer, ws As Worksheet, dl As Long

nb = Sheets.Count

Set ws1 = Sheets("Plan d'action")

dl1 = ws1.Cells(Rows.Count, 1).End(xlUp).Row + 1

ws1.Range("A10:P" & dl1).ClearContents

For i = nb To 2 Step -1

dl1 = ws1.Cells(Rows.Count, 1).End(xlUp).Row + 1

Set ws = Sheets(i)

dl = ws.Cells(Rows.Count, 1).End(xlUp).Row

ws.Range("A10", "P" & dl).Copy Destination:=ws1.Cells(dl1, 1)

Next i

dl1 = ws1.Range("A" & Rows.Count).End(xlUp).Row

Range("A10:A" & dl1).Copy Destination:=Range("AA10")

ws1.Range("AA10:A" & dl1).NumberFormat = "General"

Start = 10

Set plage = ws1.Range("C" & Start & ":C" & dl1)

For Each cellule In plage

Select Case cellule

Case "A"

number = 9

Case "B"

number = 2

Case "E"

numero = 6

Case "F"

number = 10

Case "G"

number = 11

Case "H"

number= 12

Case "I"

number = 13

Case "J"

number = 14

Case "L"

number = 1

Case "M"

number = 15

Case "N"

number = 3

Case "O"

number = 16

Case "P"

number = 17

Case "Q"

number = 18

Case "R"

number = 19

Case "S"

number = 20

Case "T"

number = 21

Case "U"

number = 22

Case "V"

nunumber = 8

Case "W"

number = 23

Case "X"

number = 7

Case "Y"

number = 24

Case "Z"

number= 45

Case "K"

number = 25

Case "Transverse"

number = 0

End Select

Cells(Start, 1) = numero & " - " & Cells(Start, 27).Value

Start = Start + 1

Next cellule

Columns("AA:AA").Delete

Columns("AA:AA").Insert

MsgBox "Mise à jour effectuée"

End Sub

Le bon résultat donne par exemple "0 - 2" et les mauvais résultats donnent sept.-43 ou 28-janv.

Pour info, le fichier comporte des mises en forme conditionnelles de 3 couleurs

Je peux joindre le fichier en message personnel pour ceux ou celles qui veulent m'aider.

Merci encore !

Bonjour,

Peut-être commencer par remplacer 'numero' par 'number'.

Puis préciser l'absence de B et C dans ton 'Select Case'.

Cdlt.

Correction faite pour le numero et number. Cela n'a aucune incidence sur le déroulement de la macro, bien sûr, hormis celui de ne pas prendre en compte le cas "E".

Les lettres correspondent à des bâtiments, B et C n'existent plus ! Idem, sans incidence sur le déroulement de la macro.

Aurais-tu une idée pour mon problème ?

Merci d'avoir pris en compte le sujet.

Bien à toi.

Bonjour,

Merci de joindre un fichier.

Bon réveillon.

Cdlt.

Meilleurs Vœux Jean-Éric pour cette nouvelle année.

Voici le fichier (allégé en données) (je l'ai basculé sur un autre pc en excel 2007, originalement créé en excel 2013).

Merci !

23fwd-da.xlsm (57.49 Ko)

Bonjour à tous,

Up ! Si quelqu'un avait une proposition à me faire, elle est la bienvenue, merci !

Bonjour,

J'ai regardé un peu ton souci, et tenter de convertir de différentes façons.

Il est lié à l'utilisation du - , qui est reconnu comme séparateur de date (si valeur compatible).

Tu peux utiliser cette syntaxe :

Cells(Start, 1) = "'" & Number & "-" & Cells(Start, 27)

Cdlt.

Bonjour Jean-Éric,

Merci pour ta remarque ; j'ai modifié ce code :

ws1.Range("AA10:A" & dl1).NumberFormat = "Text" (text à la place de general).

De ce fait, il ne considère plus la valeur comme une date.

A une prochaine.

Rechercher des sujets similaires à "format date defaut lancement macro"