Afficher certaines cellules non visibles

MR71

XLDnaute Junior
Bonjour - Encore besoin de votre expérience et compétences ! Sur un grand tableau de saisie, j'ai un récapitulatif (notamment le décompte du stock) qui s'effectue sur la partie droite de ma feuille mais qui n'est donc pas visible. A part fractionner ma fenêtre et figer les volets, y-t-il une autre solution ? J'imaginerai bien qu'en fonction de ma saisie en G111 par exemple, la cellule L9 s'affiche sur mon écran. Peut-être impossible ! Voir mon fichier pour mieux comprendre. Merci pour le temps que vous y consacrerez.
 

Pièces jointes

  • Essai.zip
    21.4 KB · Affichages: 36
  • Essai.zip
    21.4 KB · Affichages: 38
  • Essai.zip
    21.4 KB · Affichages: 36
C

Compte Supprimé 979

Guest
Re : Afficher certaines cellules non visibles

Bonsoir MR71,

Un petit exemple avec un TextBox masqué dans la feuille qui apparait après saisie d'une quantité et disparait si on change de colonne ;)

A+
 

Pièces jointes

  • MR71_Essai.zip
    30.2 KB · Affichages: 54
  • MR71_Essai.zip
    30.2 KB · Affichages: 47
  • MR71_Essai.zip
    30.2 KB · Affichages: 53

MR71

XLDnaute Junior
Re : Afficher certaines cellules non visibles

Merci ! C'est tout-à-fait ce que je voulais. Je suis loin d'être aussi douée sur excel, donc j'ai besoin de savoir ce que je dois faire dans mon fichier d'origine ?
C'est une macro ?
Je dois répéter dans toutes les colonnes ?
Comment créer un textbox ?
Merci pour toutes vos réponses et votre génie !
 
Dernière édition:
C

Compte Supprimé 979

Guest
Re : Afficher certaines cellules non visibles

RE,

Si tu veux que cela fonctionne sur ton "vrai" fichier,
effectivement il faut non seulement copier la macro, mais copier ou créer également le TextBox1.

Pour le Textbox1 tu affiche la barre d'outils "Boite à outils controles"
Tu cliques sur le bouton mode création (celui qui ressemble à une équerre avec crayon)
Tu le sélectionnes -> copier -> Coller
Il doit avoir le même nom, à savoir "Textbox1", sinon il faut modifier le code ;)

Voili, voilà :p
 
C

Compte Supprimé 979

Guest
Re : Afficher certaines cellules non visibles

Salut MR71,

Comment faire maintenant pour la colonne F (quantité sortie) car coller la macro à la suite de l'autre en remplaçant "G" par "F" ça ne suffit pas.
D'autre part, comment récupérer le format couleur rouge ou vert de la colonne L (mise en forme conditionnelle si stock > à .... affichage vert et < 0... affichage rouge. C'est un outil d'alerte pour la personne qui saisit
Comme suite à ta demande en MP, que tu aurais pu mettre ici sans problème ;)

Voici le code
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim LibArt As String, LigArt As Long, VStock As Single
  If Left(Target.Address(0, 0), 1) = "F" Or Left(Target.Address(0, 0), 1) = "G" Then
    Application.EnableEvents = False
    LibArt = Range("D" & Target.Row)
    LigArt = LigFind(LibArt)
    If LigArt <> 0 Then
      Me.TextBox1.Visible = True
      Me.TextBox1.Top = Target.Top
      Me.TextBox1.Text = "Quantité en stock : " & Range("L" & LigArt)
      If Range("L" & LigArt).Value <= 5000 Then
        ' Texte en ROUGE
        Me.TextBox1.ForeColor = CLng(&HFF&)       ' "&H000000FF&"
      Else
        ' Texte en VERT
        Me.TextBox1.ForeColor = CLng(&HC000&)     '"&H0000C000&"
      End If
    End If
    Application.EnableEvents = True
  End If
End Sub
Function LigFind(Quoi)
  LigFind = 0
  On Error Resume Next
  With ActiveSheet
    LigFind = Range("M:M").Find(What:=Quoi, LookIn:=xlValues, LookAt:=xlWhole, _
      SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False).Row
  End With
  On Error GoTo 0
End Function
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Left(Target.Address(0, 0), 1) <> "F" And Left(Target.Address(0, 0), 1) <> "G" Then
    Me.TextBox1.Text = ""
    Me.TextBox1.Visible = False
  End If
End Sub

Il suffit éventuellement de mettre la police du TextBox en gras pour que ce soit plus visuel ;)

A+
 

Pièces jointes

  • MR71_Essai.zip
    32 KB · Affichages: 28
  • MR71_Essai.zip
    32 KB · Affichages: 36
  • MR71_Essai.zip
    32 KB · Affichages: 37

MR71

XLDnaute Junior
Re : Afficher certaines cellules non visibles

Bsr - L'ajout de votre macro est effectuée dans mon fichier. Mais combien de temps avez-vous mis pour le faire ? Je n'arrive pas à comprendre ce code, je me demande quelles sont les lignes de code qui permettent d'afficher le bon stock par rapport au papier sorti.
Encore une question, l'affichage en rouge ou vert est supérieur à 100 000 pour le format A4 - 80g - Papier blanc uniquement et les autres c'est bien 5000. J'ai mis le chiffre dans la macro à 100000 car j'imagine qu'on ne peut pas traiter le stock mini diiféremment dans la macro. En tout cas merci beaucoup et le fait de ne pas savoir faire ce genre de chose me fruste.
 
C

Compte Supprimé 979

Guest
Re : Afficher certaines cellules non visibles

Re,

Je n'arrive pas à comprendre ce code, je me demande quelles sont les lignes de code qui permettent d'afficher le bon stock par rapport au papier sorti.
Désolé MR71, d'habitude je mets des annotations dan mon code
pour qu'il soit compréhensible :eek:

Encore une question, l'affichage en rouge ou vert est supérieur à 100 000 pour le format A4 - 80g - Papier blanc uniquement et les autres c'est bien 5000. J'ai mis le chiffre dans la macro à 100000 car j'imagine qu'on ne peut pas traiter le stock mini différemment dans la macro
Mais si, c'est possibleeeeeee :)

Donc le voici modifié et commenté
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim LibArt As String, LigArt As Long, QtStock As Single, VStock As Single
  ' Si la colonne de saisie est F ou G
  If Left(Target.Address(0, 0), 1) = "F" Or Left(Target.Address(0, 0), 1) = "G" Then
    ' Empècher les évènements de se reproduire lors de la modification
    Application.EnableEvents = False
    ' Récupérer le libellé de l'article de la ligne saisie
    LibArt = Range("D" & Target.Row)
    ' Récupérer le numéro de la ligne en effectuant un recherche
    LigArt = LigFind(LibArt)
    ' Si la ligne à été trouvée = différend de ZERO
    If LigArt <> 0 Then
      ' Récupérer la quantité en stock de l'article
      QtStock = Range("L" & LigArt)
      ' Affiche le TextBox
      Me.TextBox1.Visible = True
      ' Le positionner aun bon endroit par rapport à la hauteur
      Me.TextBox1.Top = Target.Top
      ' Inscrire le texte qui va bien, avec la quantité de la ligne
      Me.TextBox1.Text = "Quantité en stock : " & QtStock
      ' Selon
      If LibArt = "A4 - 80g - Papier blanc" And QtStock <= 100000 Then
        Me.TextBox1.ForeColor = CLng(&HFF&)       ' "&H000000FF&"
      ElseIf LibArt = "A4 - 80g - Papier blanc" Then
        Me.TextBox1.ForeColor = CLng(&HC000&)     '"&H0000C000&"
      ElseIf QtStock <= 5000 Then
        Me.TextBox1.ForeColor = CLng(&HFF&)       ' "&H000000FF&"
      Else
        Me.TextBox1.ForeColor = CLng(&HC000&)     '"&H0000C000&"
      End If
    End If
    Application.EnableEvents = True
  End If
End Sub
Function LigFind(Quoi)
  LigFind = 0
  On Error Resume Next
  ' Avec la feuille active
  With ActiveSheet
    ' Rechercher dans la colonne M, le type de papier entré ou sorti
    LigFind = Range("M:M").Find(What:=Quoi, LookIn:=xlValues, LookAt:=xlWhole, _
      SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False).Row
  End With
  On Error GoTo 0
End Function
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  ' Pour tout changement de cellule
  ' si la colonne est différente de F ou G
  If Left(Target.Address(0, 0), 1) <> "F" And Left(Target.Address(0, 0), 1) <> "G" Then
    ' On efface le texte
    Me.TextBox1.Text = ""
    ' et on masque le TxtBox
    Me.TextBox1.Visible = False
  End If
End Sub

Ci-joint le fichier modifié V2

A+
 

Pièces jointes

  • MR71_EssaiV2.zip
    32.3 KB · Affichages: 35
C

Compte Supprimé 979

Guest
Re : Afficher certaines cellules non visibles

RE,

C'est votre métier peut-être ?
Ca ne l'est pas malheureusement ;), mais le développement c'est une grande passion ...

Il est vrai aussi, que ça fait un paquet d'années que je travaile sur Excel ... J'ai connu la version 1.0 sur Mac c'est pour dire :eek:

Sinon j'ai déjà développé sur d'autre choses : Access, PHP, C++, C#, etc ...

Voili, voilà :)
 

Lii

XLDnaute Impliqué
Re : Afficher certaines cellules non visibles

Salut,

une autre idée (d'un amateur) donc une autre façon de procéder : utiliser un commentaire plutôt qu'un nouveau Texbox.
On se contente de la sélection d'une cellule pour avoir le stock correspondant et ainsi éviter de saisir une sortie "bizarre" (à moins qu' un stock négatif soit admis).
 

Pièces jointes

  • DansCommentaire.zip
    27.4 KB · Affichages: 32

Statistiques des forums

Discussions
312 339
Messages
2 087 407
Membres
103 537
dernier inscrit
alisafred974