classement client sur agenda

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 !

alessandro

XLDnaute Occasionnel
Bonjour à tous et merci d'avance pour les personnes qui prendront du temps pour m'expliquer !

une question simple. je cherche à faire le classement d'une agenda. j'ai téléchargé un modèle, mais je souhaite le remplir avec mes noms (enfin bref). Surtout j'aimerais comprendre un peu plus, j'ai déjà utilisé un pe de vba et rang mais là j'aimerais comprendre le pourquoi du comment dans mon cas.

L'idée est de faire un classement qui se met à jour en fonction du remplissage du tableau des résultats.

je voudrai mettre pour semaine e jour mes clients
piece jounte

merci
Alessandro
 

Pièces jointes

Dernière édition:
Re : classement client sur agenda

Bon maintenant la macro c'est considérablement allégée et sans être tributaire des espaces entre semaines !

Code:
Option Explicit

Sub essai()
Dim i As Long
Dim j As Long
Dim k As Integer
Dim l As Integer
Dim p As Integer
Application.ScreenUpdating = False ' Ecran figé
With Sheets("agenda")
.Range("B3:P20").ClearContents ' suppression de la saisie des cellules
.Range("B22:P39").ClearContents
.Range("B41:P58").ClearContents
.Range("B60:P77").ClearContents
.Range("B79:P96").ClearContents
.Range("B98:P115").ClearContents
.Range("B117:P134").ClearContents
.Range("B136:P153").ClearContents
.Range("B155:P172").ClearContents
.Range("B174:P191").ClearContents
.Range("B193:P210").ClearContents
.Range("B212:P229").ClearContents
.Range("B231:P248").ClearContents
.Range("B250:P267").ClearContents
.Range("B269:P286").ClearContents
.Range("B288:P305").ClearContents
End With
With Sheets("app")
 For i = 2 To 65536 ' ligne de 2 à 65536
  If .Cells(i, 1) = "" Then Exit Sub ' si la cellule colonne 1 de la feuille app est vide alors sortie macro
  For j = 2 To 1008 Step 19 ' boucle de 2 à 1008 par pas de 19
  If .Cells(i, 3) = Sheets("agenda").Cells(j, 1) Then ' si la colonne C est égale à la colonne 1 de la feuille agenda alors
  
   For k = 2 To 14 Step 3 ' boucle de 2 à 14
    If .Cells(i, 1) = Sheets("agenda").Cells(2, k) Then ' si la colonne 1 feuille app est égale à ligne 2 et colonne de la feuille agenda alors

     For l = j + 1 To j + 18 ' boucle de 3 à 20
     If Sheets("agenda").Cells(l, k) = "" Then ' si la cellule du lundi ou mardi etc .... est vide alors
      Sheets("agenda").Cells(l, k) = .Cells(i, 2) ' la cellule comprend le client de la feuille app
      Exit For ' sortie for
      End If ' fin si
     Next l
     
    End If
   Next k
   
   Exit For
   End If
  Next j
 Next i
End With
Application.ScreenUpdating = True

End Sub

bonne journée à tous !
 

Pièces jointes

Dernière édition:
Re : classement client sur agenda

Petit problèmes avec la reconnaissance des mots !

De fait, dans la feuille " app ", l'inscription des jours de semaines se fait par une sélection ( plus pratique et recommandée)!

Cette sélection se fait jusqu’à la ligne 5000 ( mais l'on peut prolonger)

Pour cela faire :
- sélectionner la colonne A de 5001 à .........
- données
- validations des données
- autoriser > liste
-source > =$G$2:$G$6

dans la colonne A non pourvue ( au-delà de la ligne 5000) !

bonne nuit !
 

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
Retour