XL 2016 Rechercher la dernier lignes vide mais entre un nombre de ligne définie

Didpa

XLDnaute Nouveau
Bonsoir
Voilà j'essai de créer un programme pour gérer la mise en place des clients dans une salle de 750 personnes, afin d'équilibrer ma salle qui est diviser en trois parties. Afin que les serveurs attribuer à chaque partie est à près autans de monde à servir.
Dans l'exemple il y a seulement 5 tables de 16 places, il y en aura environ une trentaine de table qui peuvent variées de 16, 20, 24, ou 32 personnes.

Ce que j'aimerais pouvoir faire c'est quand je clique sur la lettre, ou quand je valide la table avec le nom du client et le nombre de personne,
1 ) cela se place sur la bonne table du bon service (cela fonctionne)
2) dans la colonne client je recherche la dernière ligne vide de cette table
3) J'inscris le nom du client autans de fois qu'indiqué dans le nombre de personne. (afin que chaque client est une place; colonne à droite du nom : A1, A2, A3 etc...)

J'espère avoir été à peu près explicite.
Merci encore
Cordialement
 

Pièces jointes

  • Foire 2019.xlsm
    840.7 KB · Affichages: 14
C

Compte Supprimé 979

Guest
Bonjour Didpa,

Voici un code qui devrait t'aider ;)
VB:
Sub RechercheTable()
  'déclaration des variables :
  Dim Table As String, TableSuivante As String
  Dim Feuil As String
  Dim LigDeb As Long, LigFin As Long
 
  Feuil = Foire.CB_Service
  '--------------------------Déduit du Stock / Même référence que la boisson ------------------------------------------
  Worksheets(Feuil).Activate
  With Sheets(Feuil)
    Table = Foire.TB_Table
    'Chercher la première ligne de la table
    LigDeb = .Range("A:A").Find(What:=Table, LookIn:=xlValues, lookat:=xlWhole, _
      SearchOrder:=xlByRows, MatchCase:=False).Row
    ' Table suivante
    TableSuivante = Left(.Range(Table & 1).Offset(0, 1).Address(0, 0), 1)
    ' Ligne de fin de la table = ligne table suivante -1
    LigFin = .Range("A:A").Find(What:=TableSuivante, LookIn:=xlValues, lookat:=xlWhole, _
      SearchOrder:=xlByRows, MatchCase:=False).Row - 1
    ' Selection de la zone
    Range("A" & LigDeb & ":A" & LigFin).Select
  End With
End Sub

A+
 

Discussions similaires

Réponses
25
Affichages
2 K

Statistiques des forums

Discussions
311 740
Messages
2 082 041
Membres
101 879
dernier inscrit
Arthur M