Aide Insertion donnée dans arborescence

Y compris Power BI, Power Query et toute autre question en lien avec Excel
b
batoine
Membre habitué
Membre habitué
Messages : 111
Inscrit le : 9 décembre 2014
Version d'Excel : 2013 FR

Message par batoine » 27 avril 2015, 09:07

Bonjour,

Je développe actuellement un logiciel afin d'optimiser l'organisation de mon entreprise.
Je souhaite répertorier nos entreprises partenaires en fonction de leur domaine d'activité ou spécialité. Ce bout de code s'execute lorsque l'on souhaite ajouter un nouveau partenaire à la base de donnée.
Voici comment cela doit fonctionner.

Fonctionnement théorique :
L'utilisateur sélectionne à partir d'un treeview la spécialité du partenaire. (les données de ce treeview vienne d'une feuille nommée "Structure"). L'utilisateur saisie le nom du partenaire et appuis sur valider. A l'événement Valider_Click, je souhaiterai que le nom du partenaire, s'ajoute sur une feuille nommée "Structure_ST" à un endroit particulier,. Cette feuille "Structure_ST" est une copie de la feuille "Structure" à l'exception qu'on y insère le nom des partenaires aux endroits de leurs spécialités. L'endroit particulier dont je parle est détaillé dans le code ci dessous.
    Dim no_ligne As Integer
    Dim no_ligne_aff As Integer
    Dim nom_majuscule
    Dim no_ligne_du_ST As Long
    Dim i As Integer
    
    
                                'Insertion des valeurs sur la feuille Structure_ST

    Dim FoundCell As Range
     With Sheets("Arboresence_ST")
        Set FoundCell = .Range("B:F").Find(Me.entreprise, , , xlWhole) 'on cherche le chantier
        If Not FoundCell Is Nothing Then 'si on a bien trouvé le type de travaux
            Adresserecherche = FoundCell.Address
            If FoundCell.Offset(1, 1).Value = "" Then                'on regarde dans l'offset(1,1) s'il la cellule est vide : cela signifie qu'aucune Sous partie n'existe
                MsgBox "aucune sous partie n'existe"
                no_ligne_du_ST = FoundCell.Row + 1
                Rows(no_ligne_du_ST).Insert                 'on insert une ligne
                FoundCell.Offset(1, 1).Value = Me.nom.Value                 'On ecrit le ST
                Workbooks("Insertion ligne dans arborescence").Sheets("Arboresence_ST").Cells(no_ligne_du_ST, 14).Value = "ST"              'on signale dans la co
                FoundCell.Offset(1, 1).Interior.Color = RGB(203, 203, 203)                          'on coorie le fond de la cellule en gris
            Else
                no_col_tvx = FoundCell.Column
                no_lig_tvx = FoundCell.Row
                                
                For i = no_lig_tvx + 1 To 500       'on boucle sur les cellules en dessous de la celulle du résultat de la rehcerche
                    If FoundCell.Offset(i, 0).Value <> "" Then      'Si la cellule n'est pas vide
                        MsgBox i + no_lig_tvx & " - " & FoundCell.Offset(i, 0).Value
                        Rows(i + no_lig_tvx).Insert         'On insère une ligne au dessus de la première cellule non vide,à partir du résultat de la recherche
                        Cells(i + no_lig_tvx, no_col_tvx + 1).Value = Me.nom.Value      'on écrit le nom du ST dans la ligné crée avec un offset d'une colonne vers la droite (pr ête dans la ss partie)
                        Workbooks("Insertion ligne dans arborescence").Sheets("Arboresence_ST").Cells(i + no_lig_tvx, 14).Value = "ST"            'on signale dans la colonne 14 que c'est un ST
                   '     Cells(i + no_lig_tvx, no_col_tvx + 1).Interior.Color = RGB(203, 203, 203)                        'on colorie le fond de la cellule en gris
                        Range(Cells(i + no_lig_tvx, no_col_tvx + 1), Cells(i + no_lig_tvx, 14)).Interior.Color = RGB(203, 203, 203)
                        Exit For
                    End If
                Next
            End If
        End If
    End With
La partie de code sur laquelle je bloque est la partie après le Else de la fonction ifvFoundCell.Offset(1,1).Value = ""


Contexte du problème :
Le problème apparait lorsque je souhaite ajouter un partenaire ayant pour domaine d'activité (ou spécialité) Clos couvert. Excel ne détecte pas la cellule Corps d'état architecturaux (address : B104) comme étant non-vide, ou plutôt la considère comme vide.
Du coup le ST ne s'ajoute pas dans cette catégorie mais celle du dessous.
Ce problème apparait à plusieurs endroit du document.

Nota :
Dans le document que je vous ai joins, le treeview a été supprimé, il suffit juste de copier coller ------>Clos couvert<------- dans le textbox domaine d'activité


Savez-vous si c'est mon code qui n'est pas bon ou si c'est la reconnaissance des cellules par excels qui ne fonctionne pas ?


Merci d'avance à ceux qui m'aideront, J'espère avoir été clair, sinon je répondrai à vos questions !


Batoine
Insertion ligne dans arborescence.xlsm
(60.8 Kio) Téléchargé 13 fois
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message