RechercheV sur plusieurs colonne

28aide-atelier.xlsx (14.87 Ko)

Bonjour/bonsoir et bonne année !

J'ai encore besoin de votre aide ! Le fichier Excel sera plus parler pour l'explication mais je cherche à faire une sorte de rechercheV mais ou le résultats peux être dans plusieurs colonnes. en fonction de l'instrument et du nom de l'élèves, il va dans le récapitulatif de chaque professeur dans chaque onglet. je précise que les créneaux sont ajouté manuellement ( s'il est possible de faire une liste déroulante en fonction de la case d'avant (pas déroulante) je suis preneur ! ) ainsi que les coordonnées dans élèves dans l'onglet créneaux. Et ils sont aussi mis manuellement dans les tableaux, j'avais réussi quelque chose mais ça ne fonctionne de nouveau plus donc je verrais plus tard quand j'aurais le temps, cette année je ferais comme çà !

Merci d'avance pour votre aide.

Rémi

Bonjour Rémi,

Qu'elle est votre version Excel à indiquée dans votre profil SVP ?

A+

Bonjour

Ci joint ma solution

14aide-atelier.xlsm (32.61 Ko)

A+ François

Bonjour et merci pour votre réponse,

Je n'y connais vraiment rien en macros ! Comment je peux l'adapter sur un autre fichier ? ou est la ligne qui indique ou dois apparaître le résultats ?

Bonjour, Une base de données avec tous les créneaux.

Pas besoin de faire ensuite 12000 onglets ; les tableaux croisés sont là pour çà et celà s'actualise bien plus facilement en cas de changement sur l'onglet principal.

Option Explicit
Public i As Long, sh As Worksheet 'declaration dex variables en public pour qu'elles soient accessible dans les 2 macros

Sub Transfert() 'si f, h ou i non vide affectation du nom de la feuille (idem à l'instrument)et lancement de la macro remplir
  For i = 2 To Range("B" & Rows.Count).End(xlUp).Row 'boucle sur toutes les lignes
    If Range("F" & i).Value <> "" Then Set sh = Sheets(Range("F" & i).Value): remplir
    If Range("H" & i).Value <> "" Then Set sh = Sheets(Range("H" & i).Value): remplir
    If Range("J" & i).Value <> "" Then Set sh = Sheets(Range("J" & i).Value): remplir
  Next
  MsgBox ("Transfert terminé")
End Sub

Sub remplir()
  Dim lig As Long, j As Byte, k As Long 'declaration des variables locales
  lig = sh.Range("B" & Rows.Count).End(xlUp).Row + 1 'dernière ligne + 1
  For k = 2 To lig 'contrôle si nom déjà saisie
    If sh.Range("B" & k).Value = Range("B" & i).Value And sh.Range("C" & k).Value = Range("C" & i).Value Then
     For j = 2 To 5 'si oui mise à jour des données(ici les colonnes 2 à 5 à l'aide d'une boucle)
      sh.Cells(k, j).Value = Cells(i, j).Value
     Next 'pour la colonne 6 tout dépend de la colonne concernée
     If Range("F" & i).Value = sh.Name Then sh.Range("F" & k).Value = Range("G" & i).Value
     If Range("H" & i).Value = sh.Name Then sh.Range("F" & k).Value = Range("I" & i).Value
     If Range("J" & i).Value = sh.Name Then sh.Range("F" & k).Value = Range("K" & i).Value
     Exit Sub
    End If
  Next
  For j = 2 To 5 'sinon ajout des données
    sh.Cells(lig, j).Value = Sheets("crénneaux").Cells(i, j).Value
  Next
  If Range("F" & i).Value = sh.Name Then sh.Range("F" & lig).Value = Range("G" & i).Value
  If Range("H" & i).Value = sh.Name Then sh.Range("F" & lig).Value = Range("I" & i).Value
  If Range("J" & i).Value = sh.Name Then sh.Range("F" & lig).Value = Range("K" & i).Value
End Sub

pour utiliser ces macros dans un autre fichier faire glisser le module 1 dans le nouveau fichier

Ajouter un bouton (ou une forme(comme dans l'esemple)) et lui affecter la macro transfert

dans la macro transfert on choisi la feuille (qui a le même nom que l'instrument)

et dans la macro remplir on affecte à la feuille concernée les données correspondantes

A+ François

Je suis désolé, je n'ai pas compris ! Comment je fais glisser le module 1 dans le nouveau fichier ? et la fin non plus je ne comprends pas ! Je m'en excuse ! Je ne comprends pas aussi la macro en elle-même. Comment le logiciel comprends où dois aller le texte ?

Je vous remercie pour votre aide, si je n'y arrive pas encore, je laisserai tomber, j'ai pris trop de temps pour le faire. Comme j'ai dis à mon entretien annuel "je perds du temps à vouloir en gagner !"

Bonne soirée

Rémi

Rechercher des sujets similaires à "recherchev colonne"