Demande de formule

Minimoy47

XLDnaute Nouveau
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
 

job75

XLDnaute Barbatruc
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

  • RDV(3).xlsm
    43 KB · Affichages: 48

job75

XLDnaute Barbatruc
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

  • RDV(4).xlsm
    43 KB · Affichages: 52

Minimoy47

XLDnaute Nouveau
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
 

job75

XLDnaute Barbatruc
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

  • RDV(5).xlsm
    30.8 KB · Affichages: 41

job75

XLDnaute Barbatruc
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

  • RDV(6).xlsm
    34.1 KB · Affichages: 44
Dernière édition:

job75

XLDnaute Barbatruc
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

  • RDV(7).xlsm
    32.1 KB · Affichages: 34
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 459
dernier inscrit
Arnocal