Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1752 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  vb excel - MAJ un tableau

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

vb excel - MAJ un tableau

n°1938795
Renom31
Posté le 08-11-2009 à 22:01:28  profilanswer
 

Bonjour,
 
Voilà en gros j'ai un 2 tableau excel comme ceci :
 
Tableau 1
col1 col2
jean UV1
jean UV2
jean UV3
jean UV4
jean UV5
… ….
 
Tableau 2
col1            col2
formation1 uv1
formation1 uv2
formation2 uv3
formation2 uv4
formation2 uv5
…  …
 
En fait ce que je souhaiterais c'est à partir du tableau 2 mettre à jour le tableau 1 , à savoir jean a l'UV1 et l'UV2 donc il a la formation1, il a les UV3/4/5 donc il a la formation2
 
==> le tableau 1 deviendrait donc  
 
Tableau 1
col1 col2    col3
jean UV1  formation1  
jean UV2  formation1  
jean UV3  formation2  
jean UV4  formation2  
jean UV5  formation2  
 
Je n'ai aucune connaissance VB, j'en ai un peu fait sur access ... Y aurait t il une âme charitable pour m'orienter niveau développement . merci d'avence

mood
Publicité
Posté le 08-11-2009 à 22:01:28  profilanswer
 

n°1938872
olivthill
Posté le 09-11-2009 à 10:11:14  profilanswer
 

Edit: Voir les réponses plus bas.


Message édité par olivthill le 12-11-2009 à 10:04:02
n°1938873
Renom31
Posté le 09-11-2009 à 10:15:14  profilanswer
 

Ce problème est loin d'être facile. Je pense que vous n'avez pas cerné la difficulté. Mais merci beaucoup pour votre aide.

n°1938954
seniorpapo​u
Posté le 09-11-2009 à 13:33:17  profilanswer
 

Bonjour,
l'ordre des colonnes du tableau2 est-il imposé, ou peux-tu les intervertir?
Si oui: interversion, puis utilisation d'un RECHERCHEV,
Si non, utiliser un colonne libre pour y recopier la première et on revient au problème précédent.
 
Cordialement

Message cité 1 fois
Message édité par seniorpapou le 09-11-2009 à 13:34:37
n°1938976
olivthill
Posté le 09-11-2009 à 14:03:35  profilanswer
 

RECHERCHEV n'existe pas en VB, il me semble. Donc, si VB est requis, il faudrait plutôt avoir une boucle sur les cellules concernées.

n°1938990
Renom31
Posté le 09-11-2009 à 14:23:34  profilanswer
 

seniorpapou a écrit :

Bonjour,
l'ordre des colonnes du tableau2 est-il imposé, ou peux-tu les intervertir?
Si oui: interversion, puis utilisation d'un RECHERCHEV,
Si non, utiliser un colonne libre pour y recopier la première et on revient au problème précédent.
 
Cordialement


 
 
oui je peux les intervertir, mais je n'ai pas le sentiment qu'un recherchedev puisse répondre au problème puisque c'est un ensemble de cellule que je cherche et non pas une cellule.
 
 
 
 

n°1938994
seniorpapo​u
Posté le 09-11-2009 à 14:35:12  profilanswer
 

Bonjour,
ce n'est pas cela que tu veux??
 
http://cjoint.com/?ljoIbAbyN7
 
Cordialement

n°1939007
Renom31
Posté le 09-11-2009 à 14:55:35  profilanswer
 

seniorpapou a écrit :

Bonjour,
ce n'est pas cela que tu veux??
 
http://cjoint.com/?ljoIbAbyN7
 
Cordialement


 rebonjour,
 
merci pour ton fichier mais non ce n'est pas celà.
 
La difficulté c'est la boucle qui doit tester si une personne a bien toutes les UV nécessaires à la validation d'une formation.
 
Si une uv est absente la formation ne doit pas apparaitre, si toutes les uv d'une formation sont acquise alors la formation peut etre renseigné dans la troisième colonne

n°1939042
pyrof
Posté le 09-11-2009 à 15:32:43  profilanswer
 

Bonjour
col1  col2   col3   col4        col5          col6
jean UV1   formation1 uv1
jean UV2   formation1 uv2
jean UV3   formation2 uv3
jean UV4   formation2 uv4
jean UV5   formation2 uv5
 
La première ligne de "jean" =4  
 
Voici le code très simple :

Sub essai()
Dim tab1
Set tab1 = CreateObject("Scripting.dictionary" )
'------------------------------------------------------
'    lecture des formations
'------------------------------------------------------
'
l = 4
c = 6
While Cells(l, c) <> ""
    cle = UCase(Trim(Cells(l, c)))
    data = Cells(l, c - 1)
    tab1(cle) = data
    l = l + 1
Wend
 
'------------------------------------------------------
'    ecriture des formations
'------------------------------------------------------
'
l = 4
c = 2
While Cells(l, c) <> ""
    cle = UCase(Trim(Cells(l, c)))
    Cells(l, c + 1) = tab1(cle)
    l = l + 1
Wend
 
 
End Sub

n°1939045
pyrof
Posté le 09-11-2009 à 15:37:21  profilanswer
 

Précision sur les colonnes
En col 1 les "jean"
En col 2 le UV
en col 5 les formations
en col 6 les uv
 
en col 3 résultat

mood
Publicité
Posté le 09-11-2009 à 15:37:21  profilanswer
 

n°1939074
Renom31
Posté le 09-11-2009 à 16:09:55  profilanswer
 

Merci j'ai essayé d'utiliser ton script mais je n'y arrive pas.
 
j'ai pourtant mis à partir de la première ligne  
les 6 colonnes comme tu me l'as dit
 
col 1==> nom agent
col 2 ==> un détenu par agent
col 3 ==> résultat formation
col 5 ==> referentiel formation
col 6 ==> referentiel uv
 
 
 
Dans cet esprit là voilà le résultat escompté,  
col1  col2   col3        col4          col5
toto uv1 formation1  formation1 uv1
toto uv2 formation1  formation1 uv2
toto uv3                 formation2 uv4
jean uv1 formation1  formation2 uv5
jean uv2 formation1  formation2 uv6
jean uv3    
jean uv4 formation2    
jean uv5 formation2    
jean uv6 formation2    
jean uv7    
tutu uv1 formation1    
tutu uv2 formation1    
tutu uv3    
popo uv1 formation1    
popo uv2 formation1    
popo uv3    
popo uv4 formation2
popo uv5 formation2
popo uv6 formation2
popo uv7


Message édité par Renom31 le 09-11-2009 à 16:10:56
n°1939087
seniorpapo​u
Posté le 09-11-2009 à 16:45:40  profilanswer
 
n°1939090
Renom31
Posté le 09-11-2009 à 16:53:57  profilanswer
 


 
Merci mais je suis sur du  2003

n°1939093
seniorpapo​u
Posté le 09-11-2009 à 16:58:54  profilanswer
 

Dommage, je regarde en 2003

n°1939102
seniorpapo​u
Posté le 09-11-2009 à 17:31:22  profilanswer
 
n°1939140
Renom31
Posté le 09-11-2009 à 19:52:30  profilanswer
 


 
Magnifique, merci beaucoup ! J'aimerais pouvoir te rendre la pareil.
 
 

n°1939266
pyrof
Posté le 10-11-2009 à 08:40:48  profilanswer
 

Bonjour,
 
Remplace les "l=4" par "l=1"car tu dis avoir tout mis a partir de la ligne 1
j'avais précisé première de "jean" = 4
 
A+


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  vb excel - MAJ un tableau

 

Sujets relatifs
Cacher/Faire apparaitre dynamiquement une ligne dans un tableaumacro excel 2007
Sauvegarde automatique selective EXCELMacro excel pour colorer les cellules vides
Mot de passe feuille exceltkinter et parcourir / excel
Mise en forme conditionnelle dans Excel[RESOLU]Plusieurs requetes SQL en une seul sous forme de tableau
[excel] comment émettre un soncomment créer un bouton pour lancer mon programme depuis Excel
Plus de sujets relatifs à : vb excel - MAJ un tableau


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR