XL 2016 [Résolu]Formulaire adaptatif

Hynnuh

XLDnaute Junior
Bonjour à tous,
voici ce que je voudrais faire (et j'ai peur de m’être embarqué dans une usine à gaz)

Feuille 1 j'ai une liste de tests
Feuille 2 j'ai une fiche qui reprends et met en page les tests que j'ai validé sur la feuille 1
Feuille 3 J'ai un tableau qui se créé (reprenant en gros la transposée de la feuille 2)

Objectif:
feuille 1 des cases à cocher pour sélectionner les tests qui sont concernés par la référence
feuille 2 la fiche est mise en page et j'y rentre mes exigences
Feuille 3 le tableau me sert à rentrer mes résultat pour chaque produit (qui par la suite servira à alimenter d'autre tableaux rempli à base de rechercheV) .

je vous joint un fichier excel qui résume en gros ma pensée
avec un petit test de "boucle" SI .

mais là je bloque et je penses qu'un peu de VBA s'impose :/

Merci d'avances aux aventuriers Exceliens :)
 

Pièces jointes

  • Essai n°0.xlsx
    618.9 KB · Affichages: 45

vgendron

XLDnaute Barbatruc
Bonjour,

il va falloir etre un peu plus précis...
Feuille 1 2 et 3: qui est quoi? tes feuilles sont nommées "FL Générique, Fiche labo et Test Labo"
une liste de test.. ou ca? quelle colonne? quelle feuille?
des cases à cocher.. ou ca? quelle colonne? quelle feuille?
Quelle feuille doit alimenter quelle autre feuille?
 

Hynnuh

XLDnaute Junior
Bonjour,

j'ai donc fait une mise à jour du document pour que cela soit plus clair.

Feuille 1 colonne B on a la liste des tests (T1,T2,T3...)
Feuille A colonne A on choisi (pour l'heure avec un X ) les tests que nous voulons.
Feuille 2 La liste des tests sélectionnés se met en page (affichage que du T2 et T3 si ils ont été sélectionnés sur la feuille 1, avec toutes les cases liées à ce test)

Feuille 3 reprends les colonnes de la feuille 2 et les transforme en ligne (pour ensuite mettre dans chaque colonne les résultats à chaque test)

ordre d'alimentation
Feuille 1 >Feuille 2> Feuille 3

en espérant avoir été plus clair

Guillaume
 

Pièces jointes

  • Essai n°1.xlsx
    566.6 KB · Affichages: 40

vgendron

XLDnaute Barbatruc
Celui ci est mieux...
mais impose quelques modifs et contraintes
dans la feuille1, le numéro de test (T1 T2 ...T5) doit etre fusionné sur TOUTES les lignes qui le concerne..
==> c'est ce qui permet de savoir quelle zone il faut copier
 

Pièces jointes

  • Essai n°1.xlsm
    580.1 KB · Affichages: 33

Hynnuh

XLDnaute Junior
le fait que le numéro de test soit fusionné sur toute la hauteur concerné n'est pas un problème du tout, je dirais même au contraire.
merci.
du coup d'autres questions me viennent :)

-Si d'aventure je veux conserver une ligne de séparation entre les modules de test est-ce possible? (avoir T1/ligne vide/T2

-avec cette commande est-il possible de générer la transposé de la feuille 2 en feuille 3

Merci beaucoup en tout cas de on aide @vgendron je vais de ce pas essayer d'appliquer (et surtout comprendre ce que tu as fais :) )
 

Hynnuh

XLDnaute Junior
@vgendron je vais avoir besoin d'un petit coup de plus supplémentaire :/

cela se complique un peu,

du coup je ré ouvre ce sujet...
j'ai ce bout de code

Code:
With Feuil6
  fin = .UsedRange.Rows.Count  'on récupère la dernière ligne de la feuille
  For i = 1 To fin
  If .Range("AA" & i) <> "" Then
  FinTab = .Range("AA" & i).Offset(1, 0).Row - 1  'on récupère la dernière ligne de la "section test"
  Numtest = .Range("AA" & i)
  MsgBox Numtest
   
  .Range("AG" & i & ":AG" & FinTab).Copy
  Sheets("feuil2").Select
  With Feuil2
  Set ici = .Columns(1).Find(Numtest, lookat:=xlWhole)
  MsgBox ici    ' il trouve bien le bon numéro de test
  If Not ici Is Nothing Then
  .Range("A18").Offset(ici.Rows, 7).PasteSpecial
   
  End If
  End With
  End If
  Next i


End With

j'arrive à récuperer l'info en colonne AA sans problème,
je n'arrives pas à la coller dans la bonne case en revanche.

la macro fait la chose suivante:
regarder chaque ligne de la feuil 6
récupérer les infos en colonne AG si la colonne AA n'est pas vide
chercher sur la feuille 2 le numéro de test correspondant à celui qu'elle a trouvé sur la feuil 2 (jusque là tout va bien)
mais je n'arrive pas à lui faire coller là où il faut, c'est à dire sur la mm ligne où elle a trouvé le numtest mais dans la colonne G...

feuil 6
numéro du test en colonne AA
info à conserver en colonne AG

Feuil 6
numéro du test en colonne A
info à coller en colonne G (à partir de la ligne 18)

Je ne sais pas si c'est clair...

merci d'avance pour le coup de main (et surtout comprendre ce qui bloque)
 

vgendron

XLDnaute Barbatruc
Hello

sans ton nouveau fichier avec la 'feuil6'.. pas facile de voir..

mais déjà..
cette ligne de code...
FinTab = .Range("AA" & i).Offset(1, 0).Row - 1 'on récupère la dernière ligne de la "section test"
si je te dis qu'elle pourrait etre remplacée par
FinTab=i
 

Hynnuh

XLDnaute Junior
Bon ok j'envoi le nouveau tableau, ça sera plus simple je penses pour tout expliquer.

merci en tout cas de l'aide,
j'ai sent que la solution existe, mais cela fait 2 jours que j'essaye d'adapter (j'ai réussi à récupérer les donnée, mais pas à les replacer où il faut)
 

Pièces jointes

  • Test 2.xlsm
    93.3 KB · Affichages: 24

vgendron

XLDnaute Barbatruc
avec ce code. ca va aller.. un peu mieux...
VB:
Sub sauve1_2()

'Application.ScreenUpdating = False

With Feuil6
    fin = .UsedRange.Rows.Count                             'on récupère la dernière ligne de la feuille
        For i = 1 To fin
        If .Range("AA" & i) <> "" Then
            FinTab = .Range("AA" & i).Offset(1, 0).Row - 1  'on récupère la dernière ligne de la "section test"
            numtest = .Range("AA" & i)
               
            .Range("AG" & i & ":AG" & FinTab).Copy
            With Feuil2
                 Set ici = .Columns(1).Find(numtest, lookat:=xlWhole)
                MsgBox ici.Address
                If Not ici Is Nothing Then
                    .Range(ici.Address).Offset(0, 6).PasteSpecial
                End If
            End With
        End If
    Next i
End With
'Application.ScreenUpdating = True
End Sub

je dis un peu. parce que....quand il cherche T1 (que ce soit le premier en ligne 1 ou les suivants (en lignes 16 et 21)
il trouvera TOUJOURS le premier T1 dans la feuille 2 (en ligne 19) ===> donc.. il écrasera systématiquement le premier T1..

il faut trouver quelque chose pour lui dire d'aller au T1 suivant (s'il est déjà rempli par exemple)
 

Hynnuh

XLDnaute Junior
En définitive, il n'y à pas de second T1, il y a au pire un T1,1
j'ai oublié de modifier cela.

et j'aimerais aussi que dans la feuil3 on puisse faire la mm chose case par case,
qu'on puisse ajouter des tests au milieu du tableau et que les résultats reviennent "à leur place" automatiquement
(je pensais le faire avec la macro du dessus mais à la fois sur les ligne i et les colonne j)
est-ce "aussi simple"?
 

vgendron

XLDnaute Barbatruc
C'est surement possible, à condition que tu expliques clairement le besoin...
et je viens de jeter un oeil à tes macros....hmm.. c'est un peu le boxon la dedans.. faudrait faire un peu de rangement...et simplifier tout ca..
c'est pas le sujet pour l'instant.. mais. faudra y penser.. :-D
 

Discussions similaires

Réponses
5
Affichages
215
Réponses
4
Affichages
196

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 459
dernier inscrit
Arnocal