Amélioration fichier avec vba

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

alex60

XLDnaute Occasionnel
Bonjour le forum,

J'ai déjà fait appel à vous dans un précédent post mais je n'avais pas encore fait la mise en forme finale de mon document.
Pour mémo, je souhaite avoir sur l'onglet "référentiel" une base avec mes machines et les différents contrôles effectués sur chacune d'elle. En fonction des croix mise sur le tableau et de la machine sélectionnée dans l'onglet "checklist" que les contrôles s'affichent en auto.
Jusqu'ici la macro que j'ai le fait mais mon problème est que celle-ci supprime et décale vers le haut les lignes du dessous lorsque l'on change les machines.
J'apporte une précision supplémentaire sur le fonctionnement que je voulais sur ce document. En faite, je voudrai que si sur une machine je n'est que 5 controles que la feuille s'ajuste en auto et ne m'affiche pas les 5 lignes suivantes vides.

Quelqu'un peut-il m'aider??? Et n'hésitez pas si ce n'est pas clair.


Merci d'avance.
 

Pièces jointes

Re : Amélioration fichier avec vba

Merci pour ta réponse kjin,

Par contre au sujet de la mise en forme j'ai quelques soucis.
N'étant pas un pro du language vba, je ne sais pas comment je pourrai effectuer le remplissage des cellules A8 à B... de la même couleur que le remplissage des jours de la semaine.
Je n'arrive pas aussi à mettre les lignes horizontales en pointillées (comme celles qui sont en vertical dans les colonnes des jours de la semaine). J'ai trouvé la commande xlDash mais ce n'est pas ça.
Et enfin, je n'arrive pas à modifier la hauteur des lignes de contrôle afin que celles-ci soient égales à 30 (40pixels).

Ces éléments sont certes peu important pour le fonctionnement du document mais ils sont important pour moi (pour finaliser).

Merci d'avance de votre aide!
 
Re : Amélioration fichier avec vba

Merci kjin, ça marche nickel !!!

Je vais peut être t'embêter encore en te demandant s'il serait possible que dans la colonne D en dessous de la cellule D7 que je puisse mettre du texte.
Avec ta macro, si je met du texte et que je change de machine mon texte disparait...
Ce que je souhaiterai faire après c'est mettre une formule de recherche verticale. L'idée étant de dire que si dans la colonne B8 j'ai "controle 1" alors en D8 ma recherche verticale m'affichera HT (hors tension).

Pour la formule de recherche verticale je saurai me débrouiller par contre ce que je ne sais pas faire c'est d'éviter que la formule que je metterai dans la colonne D s'efface.

Y a-t-il un moyen de le faire?

Merci
 
Re : Amélioration fichier avec vba

Re,
...par contre ce que je ne sais pas faire c'est d'éviter que la formule que je metterai dans la colonne D s'efface...
Moi non plus dans la mesure où tu auras compris que l'on supprime les lignes avant réinsérer les nouvelles valeurs.
Donc pas d'autre solution que d'implémenter la formule ou son résultat directement en VBA, mais il faudrait que tu précises la formule en question, parce que si je connais la cellule B8, la colonne B8 je ne connais pas
A+
kjin
 
Re : Amélioration fichier avec vba

Pardon pour l'erreur, c'était la fin de journée...

J'ai modifié l'onglet "référentiel" dans lequel j'ai ajouté une colonne ETAT.
A paritr de la cellule C8 et jusqu'à la fin de la liste de contrôle, je souhaitais avoir dans ces cellules la formule suivante :
=RECHERCHEV(B8;Référentiel!A4:B14;2)

Dans la formule il faudra bien sur que la cellule B8 s'incrémente pour devenir à la ligne suivante B9, puis B10, ...

Pourais-tu m'apporter cette modification stp?

Je pense qu'après j'en aurais fini avec ce document... Merci pour ton aide
 

Pièces jointes

Re : Amélioration fichier avec vba

Bonjour,
Il me semble que le plus simple est de récupérer directement la valeur, mais je t'ai mis la solution formule aussi.
Ajoutes les lignes bleues à ton code
Code:
'....
    For i = 1 To 10
        If UCase(.Cells(i + 4, k + 1)) = "X" Then
        Rows(7 + j).EntireRow.Insert
        Cells(7 + j, 1) = j
        Cells(7 + j, 2) = .Cells(i + 4, 1)
[COLOR="Blue"]        'Si tu veux insérer directement la valeur
        Cells(7 + j, 3) = .Cells(i + 4, 2)
        'Ou si tu préfères la formule
        'Cells(7 + j, 3).FormulaLocal = "=RECHERCHEV($B" & 7 + j & ";Référentiel!$A$5:$F$14;2;0)"[/COLOR]
        j = j + 1
        End If
    Next
'....
With Range("C8:C" & DL)
    [COLOR="Blue"].Font.ColorIndex = xlAutomatic[/COLOR]
    .Borders(xlEdgeRight).LineStyle = xlDouble
    .Borders(xlEdgeRight).Weight = xlThick
End With
'....
A+
kjin
 
- 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
4
Affichages
223
Retour