Aide pour finaliser mon petit fichier

Fermé
duduleray Messages postés 21 Date d'inscription mardi 17 mars 2009 Statut Membre Dernière intervention 16 février 2020 - 16 févr. 2020 à 16:46
 duduleray - 17 févr. 2020 à 08:08
Bonjour, a tous, forum bonjour,

<config>Windows 10 et Edge / Internet Explorer 11.0</config Excel 2007>

J'ai presque terminer mon fichier mais je bute en VBA pour finaliser mon fichier a cause d'effacement de lignes sur mon deuxième onglet.

Je joins le fichier on j'ai mis des explications, l'utilisation est très simple mais pour expliquer, heu moins facile, j'ai fais de mon mieux et je me tient a dispo pour autres infos.

https://www.cjoint.com/c/JBqpK6RrWCY

Merci a vous et bonne fin d'après midi.

Cdlt Raymond
A voir également:

4 réponses

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
16 févr. 2020 à 17:41
Bonjour,

Comme je te l'ai déjà indiqué dans une précédente question

Poster un fichier c'est bien.
Expliquer (dans le forum) le souci rencontré exactement ET montrer le code qui pose problème est mieux.
Pourquoi ? .. par ce que les soucis que tu rencontres peuvent interesser d'autres internautes... et le moteur de recherche n'est pas capable d'aller voir le texte explicatif que tu mets dans tes liens.

Là tu nous dis avoir un souci sur l'effacement....
Le blabla qui se trouve dans ta feuille excel semble indiquer tout ce que tu dois ( à déjà ? ) fait.

Donc :
Merci d'expliquer DANS LE FORUM, le souci EXACT rencontré et de nous montrer le CODE CONCERNE.

Il se peut qu'on puisse te donner la réponse sans même avoir à télécharger le document.


1
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
16 févr. 2020 à 17:44
Nb: Pour trouver la dernière ligne non vide de ton second onglet, bases toi sur la colonne B au lieu de la A puisque la B ne semble jamais vide
0
le fichier ci présent comprends deux onglets:

1) Site global principal
2) Liste commande

Cela me sert a générer une feuille pour passer des commandes de filtres se trouvant dans divers batiments et ailleurs parfois aillant la mème référence.

Dans l'onglet "Site global" les premiéres lignes sont réservés pour le logo et divers infos personnelles concernant l'entreprise.

Zone de travail de l'onget "Site global" A18:A60 et sur 10 colonnes de (A:J)

Le but pour passer une commande étant de double-cliquer dans une cellule la colonne (A18:A60) qui entourera la cellule cliquée d'une bordure rouge et inscrit dans la colonne (J) "A commandé" en vert.

Ceci doit être valable mème si une cellule est vide de la colonne (A18:A60) car c'est la référence de la ligne qui compte.

Quand je double clic en (A18:A60) la ligne correspondante est également recopier dans l'onglet nommé "Liste commande"

A savoir avant de continuer dans l'onget "Site global" l'affichage commence en (A18:A60) et "Liste commande" l'affichage commence en colonne (A2:A60) pour l'instant, je paufinerai plus tard.

Donc je dois pouvoir cliqué n'importe ou dans la colonne (A18:A60) de l'onglet "Site global" et de recopier cette ligne dans "Liste commande"

Mais voila ca ne fonctionne pas a tous les coups notamment sur les lignes ou les cellules de la colonne (A18:A60) sont vides.

-- Mon souhait svp serait de pouvoir double-cliquer dans la colonne (A18:A60) et afficher ce qui est cliquer dans l'onglet "Site commande".

et de pouvoir éventuellement par un autre double-clic annuler une ligne cliquer par erreur donc effacer la ligne dans l'onglet "Liste commande", sinon je me contenterai d'un clic droit pour effacer l'erreur.

Dans l'onglet "Commande liste" on peux effacer toute la ligne avec fond de cellule blanc et bordure noire normale.

Pour l'onglet "Site global" on peux remettre a l'initial bordure noire, fond gris, couleur écriture comme si contre.

Ici dans l'exemple 6 cellules sont cliquée et bordure rouge mais 4 seulement ont étées recopier dans l'autre onglet.

Si je clic dans la cellule J17 en rouge cela remets a remets a zéro l'affichage des deux onglets afin de procéder a une nouvelle commande.

Merci pour votre aide et votre savoir partager.

Bonne fin d'après midi a vous et merci.

Cdlt Raymond

PS: mon blabla explique le gros du fichier et ce que je n'arrive pas a faire
Nb: Pour trouver la dernière ligne non vide de ton second onglet, bases toi sur la colonne B au lieu de la A puisque la B ne semble jamais vide

j'ai essayer mais du coup ca ne recopie pas la colonne A de l'onglet "Site global" et decale d'une colonne l'affichage de l'onglet "Liste commande"

Réponse: je ne suis pas assez bon pour l'instant en vba alors j'essai tout seul et l'aide du net.
je pensais que ce serai simple mais baht non donc je pédale.

J'ai mis le fichier avec les explications car les avis sont partager et le fichier semble le bienvenue maintenant !!!!

Merci a l'aide apporter.

Option Explicit
Public Old_Selection: Public Derlig As Integer
Public champ, n, i, trouv?, ncol, Z, col1, col2, x, a, b, zone, EffaceCellule

'*** Traitement si le double-click est situ? en colonne A
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        If Not Application.Intersect(Target, Range("A18:A60")) Is Nothing Then
        If Target.Row < 18 Or Target.CountLarge > 1 Then Exit Sub

 Old_Selection = Target.Address
                  With Target.Borders
                         .Weight = xlThick                     '*** xlMedium   '*** Trait ?paisseur Moyen  '*** .LineStyle = xlDash  '*** Tiret-point
                         .ColorIndex = 3                        '*** Rouge
                         Worksheets("Site global").Range("J" & Target.Row - 0).Value = "A command?"            '*** Affiche en colonne '' (J)  "A command?"
           End With

'*** Report d'un enregistrement
Derlig = Sheets("Liste commande").Range("A60").End(xlUp).Row                                                          '*** Derni?re ligne de la colonne A
Range(ActiveCell, ActiveCell.Offset(0, 10)).Copy Sheets("Liste commande").Range("A" & Derlig + 1)
End If
End Sub

'*** Si clic dans cellule (J17) = "RESET TOTALE"
Private Sub Worksheet_selectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("J17")) Is Nothing Then

        With Worksheets("Liste commande")
                                   .Range("A2:J60").Value = ""                                              '*** Les donn?es sont ?ffac?es
                                   .Range("A2:J60").Borders.LineStyle = xlContinuous            '*** Le cadre est mis en noir
                                   .Range("A2:J60").Borders.ColorIndex = 1                          '*** Color bordure noire
                                   .Range("A2:J60").Interior.ColorIndex = xlNone                    '*** Remets en blanc le fond des cellules
        With Worksheets("Site global")
                                  .Range("I18:J60").Value = ""                                                            '*** Les donn?es de la colonne (I) sont ?ffac?es
                                  .Range("A18:J60").Borders.LineStyle = xlContinuous                         '*** Le cadre est mis en noir
                                  .Range("A18:J60").Borders.ColorIndex = 1                                       '*** Color bordure noire
End With
End With
End If
End Sub

'#Effacer une ligne entrer par erreur "Site global" et "Liste commande"

'*** code a l'essai mais fonctionne pas

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    Dim FondCellule, Donn?e As Long
          Cancel = True
With Worksheets("Liste commande").Activate
       With Selection
          If .Row = 1 Or .Row = 41 Then Exit Sub
          
    For FondCellule = 1 To 9: Cells(.Row, FondCellule).Interior.ColorIndex = xlNone: Next FondCellule
    For Donn?e = 1 To 11: Cells(.Row, Donn?e).Value = "RE": Next Donn?e      'Efface toute la ligne s?lectionn?e

End With
End With
End Sub
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
16 févr. 2020 à 19:13
Visiblement, il n'y a pas qu'avec le code que tu as des soucis.... la compréhension n'est pas ton fort non plus.
Donc...on recommence....

On ne veut pas TOUT l'explicatif de ce que doit faire ton classeur.

On veut juste que tu nous dises QUEL POINT PRÉCIS te pose problème ainsi que LE BOUT de code concerné (et pas tout ton code)
En gros, là tu nous file l'annuaire téléphonique et tu nous demandes de te donner le numéro du plombier.... Non... on n'est pas là pour se palucher les 150000 pages pour toi.

Si tu fais l'effort de formuler ta demande correctement tu verras que ça sera plus simple
1 - pour qu'on t'aide
2 - pour que toi même tu comprenne ce qu'on te fera faire
3 - voir éventuellement que tu trouves la solution par toi même.


Pour trouver la dernière ligne non vide de ton second onglet, bases toi sur la colonne B au lieu de la A puisque la B ne semble jamais vide

j'ai essayer mais du coup ca ne recopie pas la colonne A de l'onglet "Site global" et decale d'une colonne l'affichage de l'onglet "Liste commande"

Bien entendu.. tu n'as modifié que la ligne de code qui sert à trouver la dernière ligne non vide n'est-ce pas ?
Montres nous LAQUELLE tu as changé exactement.

Il ne suffit pas de copier/coller du code bêtement.. il faut chercher à les comprendre. Surtout lorsqu'on débute. c'est comme ça qu'on progresse.
Et heureusement pour les débutants, la documentation microsoft et les nombreux sites internets disponibles sur le sujet sont là pour vous y aider.
0
Re comment veut tu que je te répondre, je modifie sans cesse les codes

jusqu'à ce que ca marche mais bon c'est pas grave.

merci a toi

bonne soirée

Cdlt Ray
0
yg_be Messages postés 22719 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
16 févr. 2020 à 20:22
c'est pas grave, écris-tu.
de ton point de vue, sans doute.
de mon point de vue, c'est dommage de ne pas respecter ceux qui veulent prendre du temps pour t'aider, et de ne pas prendre de ton temps pour expliquer clairement et précisément ce qui ne va pas.
si tu modifies sans cesse les codes, n'hésite pas à sauvegarder le code qui fonctionne, et y revenir en cas de soucis.
si tu nous montres un code qui fonctionne, à part un élément que tu viens d'ajouter, cela a beaucoup plus de sens pour nous que nous montrer tout un tas de code qui fonctionne partiellement.
0
Salut a vous

J'ai déjà répondu une fois a ce style de commentaires très positivement delà a formuler hyper correctement une demande n'a rien a voir avec le non respect des gens qui me répondent, bien au contraire, d'ailleurs toi le premier yg_be a qui j'ai répondu le plus correctement du monde.

Maintenant je n'oblige personne a prendre ma demande en considération si j'ai mal formulé, pas faute de faire pour le mieux, mais me mettre a votre place, je sais très bien que ce n'ai pas facile.

J'ai 66 ans et tant que je peux encore rendre service dans d'autres domaines, je le fais également bénévolement.

Des petites réparations électriques, monter un meuble, déboucher un évier, etc etc.

Comme la, le fichier est mon fils afin de l'aider dans son travail et je suis loin d'avoir vos connaissances, rien n'empêche d'essayer de le réaliser.

PS: je modifie et je sauvegarde bien sur, j'ai déjà assez de mal alors quand ça marche, il va de soi que je sauvegarde, non !!!

Bien cordialement Raymond
0