Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Demande de formule

  • Initiateur de la discussion Initiateur de la discussion Minimoy47
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

Minimoy47

Guest
Bonjour,

J'ai besoin d'aide, j'ai établi sous excel un tableau reprenant tous mes RDV, je souhaiterai qu'a chaque fois que le nom de la même personne revient qu'il se numérote automatiquement.
Par ex M Dupont la première fois ressorte M Dupont 1 la deuxième M Dupont 2 etc.. et qu'il en soit de même pour chaque nom.
Existe'il un moyen pour qu'il en soit ainsi?

Par avance merci de vos réponse
 
Re : Demande de formule

Bonjour Minimoy47, le forum,

Je reviens pour corriger la macro.

S'il existe des noms comme Jean-Pierre et Jean le fichier (2) ne les numérote pas correctement.

Il faut modifier les 2 tests comme suit :

Code:
If n1 = n Then P(i, j) = nom & " " & n2 + 1: GoTo 1
If Trim(P(i1, j1)) Like nom & " #*" Then n2 = n2 + 1
Fichier (3).

A+
 

Pièces jointes

Re : Demande de formule

Re,

Et pour la suppression des chiffres ceci est plus rapide :

Code:
'---RAZ---
For i = 0 To 9
  For j = 1 To Ncol Step 3
    P.Columns(j).Replace " " & i, "", xlPart
    P.Columns(j).Replace i, ""
  Next
Next
Fichier (4).

A+
 

Pièces jointes

Re : Demande de formule

Je reviens vers vous car je n'arrive pas a appliquer la formule dans mon tableau a savoir que celui-ci commence au mois de janvier, je ne vous ai fais parvenir que la partie 2. En ce qui concerne les macros je n'y connais rien du tout et j'arrive un peu à naviguer avec les formules conditionnelles. J'ai donc un tableau avec 19 colonnes x 2 l'un sous l'autre et 31 lignes en plus de l'entête x 2. la je baisse les bras car je n'arrive à rien. Pouvez-vous faire quelque chose pour moi???? Je suis vraiment nuuuuuuuuuuuuuuuuuuul
 
Re : Demande de formule

Bonjour Minimoy47, le forum,

Utilisation d'un document auxiliaire où les tableaux sont placés côte à côte.

Et dans lequel seules les valeurs des cellules sont copiées :

Code:
Option Compare Text 'si l'on veut que la casse soit ignorée

Sub Numéroter()
Dim choix As Byte, P1 As Range, P2 As Range, P As Range
Dim Nlig%, Ncol%, i%, j%, nom$, n%, n1%, n2%, i1%, j1%
choix = MsgBox(String(20, " ") & "Numéroter ?", 4)
Application.ScreenUpdating = False
Set P1 = [B2:S33] '18 colonnes impérativement
Set P2 = [B35:S72]
With Workbooks.Add.Sheets(1) 'document auxiliaire
  .[A1].Resize(P1.Rows.Count, P1.Columns.Count) = P1.Value
  .[S1].Resize(P2.Rows.Count, P2.Columns.Count) = P2.Value
  Set P = .Range(.[A1], .UsedRange)
  Nlig = P.Rows.Count: Ncol = P.Columns.Count
  '---RAZ---
  For i = 0 To 9
    For j = 3 To Ncol Step 3
      P.Columns(j).Replace " " & i, "", xlPart
      P.Columns(j).Replace i, ""
    Next
  Next
  '---affectation des numéros---
  If choix = 6 Then
    For j = 3 To Ncol Step 3
      For i = 1 To Nlig
        If P(i, j) <> "" Then
          nom = Trim(P(i, j))
          n = n + 1 'numéro de repérage
          n1 = 0: n2 = 0 'n1 numéro de repérage, n2 comptage des noms
          For j1 = 3 To Ncol Step 3
            For i1 = 1 To Nlig
              If P(i1, j1) <> "" Then
                n1 = n1 + 1
                If n1 = n Then P(i, j) = nom & " " & n2 + 1: GoTo 1
                If Trim(P(i1, j1)) Like nom & " #*" Then n2 = n2 + 1
              End If
            Next i1
          Next j1
        End If
1     Next i
    Next j
  End If
  '---restitution---
  P1 = .[A1].Resize(P1.Rows.Count, P1.Columns.Count).Value
  P2 = .[S1].Resize(P2.Rows.Count, P2.Columns.Count).Value
  .Parent.Close False 'suppression du document auxiliaire
End With
End Sub
Fichier (5).

A+
 

Pièces jointes

Re : Demande de formule

Re,

Juste une remarque.

S'il y a des formules il suffit de copier les formules au lieu des valeurs.

Fichier (6) où j'ai mis les formules calculant les jours J en colonnes B E H K N Q.

Edit : formule en B2, à adapter en B35 :

Code:
=SI($A2="";B1;SI(ESTNUM(-($A2&D$1&2013));NOMPROPRE(GAUCHE(TEXTE($A2&D$1&2013;"jjj")));""))
Attention, il manquait l'accent circonflexe sur le u d'Août.

A+
 

Pièces jointes

Dernière édition:
Re : Demande de formule

Bonjour Minimoy47, le forum,

Pour rendre vos deux tableaux facilement adaptables :

- paramétrez l'année (cellule D1)

- nommez Titre1 et Titre2 les lignes 2 et 35

- dans la macro définissez P1 et P2 par :

Code:
derlig = [Titre1].Parent.Cells.Find("*", , xlFormulas, , xlByRows, xlPrevious).Row
Set P1 = [Titre1].Cells(2, 2).Resize([Titre2].Row - [Titre1].Row - 1, 18)
Set P2 = [Titre2].Cells(2, 2).Resize(derlig - [Titre2].Row, 18)
Edit : ajouté [Titre1].Parent qui fonctionne quelle que soit la feuille active.

Fichier (7).

A+
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
246
Réponses
15
Affichages
848
Réponses
7
Affichages
306
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…