XL 2016 Modification code VBA

Fabien62

XLDnaute Occasionnel
Bonsoir à tous,

Je n'arrive pas à conditionner un code en VBA, du moins, je n'arrive pas à lui faire faire ce que je veux

Dans mon fichier ci-joint, lorsque que je sélectionne dans la feuille facture en C4 un nom de groupe avec une adresse plus ou moins renseignée dans la feuille DATAS, je souhaite masquer les lignes 5 et 6 si celles-ci ne sont vides et les afficher si celles-ci contiennent du texte.

Je me pose la question si il est nécessaire de garder le If IsNumeric(Target) = True Then pour ma fonction ConvNumberLetter

J'ai fais quelques essais, le code est accessible

Merci pour votre aide

Cordialement
 

Pièces jointes

  • Mémoire de frais Essai.xlsm
    44.4 KB · Affichages: 35

Lone-wolf

XLDnaute Barbatruc
Bonjour Fabien :), le Forum :)

Le plus simple est de faire comme ceci, d'après ce que j'ai compris :

VB:
Dim derlig As Long, i As Long

    With Sheets("DATAS")
              derlig = .Cells(Rows.Count, "A").End(xlUp).Row
        For i = 2 To derlig
            If .Cells(i, "A") <> ""  Then
                Sheets("Facture").Rows(5).EntireRow.Hidden = False
                Sheets("Facture").Rows(6).EntireRow.Hidden = False
            Else
               Sheets("Facture").Rows(5).EntireRow.Hidden = True
               Sheets("Facture").Rows(6).EntireRow.Hidden = True
            End If
        Next i
    End With

.
 
Dernière édition:

Fabien62

XLDnaute Occasionnel
Bonjour,

Pour l'instant, voici ce que j'ai mis, cela fonctionne bien

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$C$4" Then masquer_lignes_Vide
    If IsNumeric(Target) = True Then
    End If
    End Sub
Sub masquer_lignes_Vide()
Cells.EntireRow.Hidden = False
If Feuil6.Range("C5") = 0 Then Rows(5).EntireRow.Hidden = True
If Feuil6.Range("C6") = 0 Then Rows(6).EntireRow.Hidden = True
End Sub

Cependant, je vais tester le votre par curiosité

Cdlt
 

Lone-wolf

XLDnaute Barbatruc
Re

Une modification du code, à mettre dans le module de la feuille Facture.

EDIT: défusionne les cellules, inutile pour si peu et élargi un peu la colonne.

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long, rw

    Application.EnableEvents = False
    If [C4] <> "" Then

        With Sheets("DATAS")
            rw = Application.Match([C4], .Columns(1), 0)
            Cells(5, "C") = .Cells(rw, "B")
            Cells(6, "C") = .Cells(rw, "C")
            Cells(7, "C") = .Cells(rw, "D")
        End With
    End If

    For i = 5 To 7
        If Cells(i, "C") = vbNullString Then
            Rows(i).EntireRow.Hidden = True
        Else
            Rows(i).EntireRow.Hidden = False
        End If
    Next i
    Application.EnableEvents = True
End Sub
 
Dernière édition:

Discussions similaires

Réponses
8
Affichages
431

Statistiques des forums

Discussions
311 720
Messages
2 081 902
Membres
101 834
dernier inscrit
Jeremy06510