Microsoft 365 TS Ajout ligne avec Condition

  • Initiateur de la discussion Initiateur de la discussion eric72
  • 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 !

eric72

XLDnaute Accro
Bonjour à tous,
Je retrouve le même problème que dans mon précédent post mais avec un autre exemple.
- un TS "TbSalarie", j'aimerai copier les données des 5 premières colonnes si la Catégorie est (par exemple) "Ouvrier" dans le TS "TbPlan à partir de la colonne 2 à la colonne 6
- J'ai commencé à tenter d'adapter le code (de vgendron) du précédent post mais je ne comprends pas le fonctionnement des "tablo" (il est préférable de ne pas en tenir compte!!!).
Quelqu'un aurait-il la gentillesse de m'aider?
Merci beaucoup
 

Pièces jointes

Solution
Re,

je souhaitais prendre l'exemple de D_ENTREE pour comprendre comment on récupère l'index de la ligne pour coller une autre plage non contigues, raison pour laquelle j'ai pris cet exemple en imaginant que la colonne "L" devienne D_ENTREE

Voici la version v2 dont les commentaires ont été modifiés. Les lignes de commentaires avec au début " ** " concernent les lignes modifiées ou rajoutées pour satisfaire la demande complémentaire.
Re,

je souhaitais prendre l'exemple de D_ENTREE pour comprendre comment on récupère l'index de la ligne pour coller une autre plage non contigues, raison pour laquelle j'ai pris cet exemple en imaginant que la colonne "L" devienne D_ENTREE

Voici la version v2 dont les commentaires ont été modifiés. Les lignes de commentaires avec au début " ** " concernent les lignes modifiées ou rajoutées pour satisfaire la demande complémentaire.
 

Pièces jointes

Re,



Voici la version v2 dont les commentaires ont été modifiés. Les lignes de commentaires avec au début " ** " concernent les lignes modifiées ou rajoutées pour satisfaire la demande complémentaire.
Voilà une explication claire et précise, avec ça je devrais maîtriser à l'avenir.
Merci beaucoup pour avoir pris le temps de rédiger tous ces commentaires.
Bonne journée et bon week-end
 
Re,



Voici la version v2 dont les commentaires ont été modifiés. Les lignes de commentaires avec au début " ** " concernent les lignes modifiées ou rajoutées pour satisfaire la demande complémentaire.
Bonjour mapomme,
Je pense avoir bien compris, un seul petit HIC, c'est le MATRICULE qui retire les 0 du début, j'ai donc tenté de changer le format comme cela:
VB:
   For i = 1 To UBound(t)
   [B][COLOR=rgb(226, 80, 65)] t(i, 2) = CStr(t(i, 2))[/COLOR][/B]
      If LCase(t(i, 7)) = xCategorie Or xCategorie = "*" Then        ' c 'est la bonne catégorie
         nr = nr + 1                                                 ' on incrémente le nombre de lignes utiles
         For j = 1 To 5: [B][COLOR=rgb(226, 80, 65)]r(nr, 2) = CStr(r(nr, 2))[/COLOR][/B]: r(nr, j) = t(i, j): Next               ' copie les données de t (ligne i) dans r (ligne nr)
         d(nr, 1) = t(i, nCola)                                      ' ** n met dans d le "D_ENTREE" de la ligne retenue
      End If
   Next i
   ' ** on colle maintenant les nr lignes de r et de d dans le plan de formation
   If nr > 0 Then       ' uniquement s'il y a au moins une ligne utile dans le résultat
      Sheets("PLAN DE FORMATION").Select
      tsPlan.ListRows.Add           ' ajout d'une nouvelle ligne dans le plan
      nlig = tsPlan.ListRows.Count  ' ** numéro de la ligne de données qu'on a rajouté au plan
      ' on va coller dans la deuxième cellule (colonne 2) de cette nouvelle ligne les nr lignes de r
      tsPlan.ListRows(nlig).Range(1, 2).Resize(nr, 5) = r
      ' ** on va coller dans la nColb ième cellule (colonne 12) de cette nouvelle ligne les nr lignes de d
      tsPlan.ListRows(nlig).Range(1, nColb).Resize(nr, 1) = d
      ' ** on formate la colonne "DUREE EN HRES" en date
      tsPlan.ListColumns(nColb).DataBodyRange.NumberFormat = "dd/mm/yyyy"
      ' ** on formate la colonne "MATRICULE R.H." au format Texte
     [B][COLOR=rgb(226, 80, 65)] tsPlan.ListColumns(3).DataBodyRange.NumberFormat = "@"[/COLOR][/B]
      ' si on veut changer l'en-t^te de la colonne "DUREE EN HRES"
      tsPlan.Range(1, nColb) = "Date Initiale"
Malheureusement sans succès, décidemment!!!
Merci beaucoup encore une fois
 
- 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

Discussions similaires

Réponses
5
Affichages
138
Réponses
3
Affichages
338
Retour