Effacement cellule

Bonjour

Je suis entrain de travailler sur un dossier excel

je rencontre un problème au niveau de la suppression des qté individuellement pour la remise a 0 complète pas de problème

en effet j'ai sur le bon de commande une cellule qui affiche la somme Qté prix quand je supprime une qté individuellement les cellule de ma formule s'efface .

J'ai posté a cette adresse https://forum.excel-pratique.com/excel/copie-d-une-feuille-a-une-autre-sous-condition-t34063.html

J'aurais peut être pas du mille excuse

Cordialement

Re bonjour

J'ai mis les explications dans le fichier que j'ai joint a mon premier post

je pense que mon problème viens de là (voir surligne)

sa serais vraiment sympa de ma dire ce qui cloche

merci a toute l'équipe pour leurs conseils

Cordialement

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

Dim Cel As Range

Dim Ligne As Long

' Vérif si la modification est sur une cellule dans l'intervalle C2 à C ..(niveau de la dernière ligne en A)

If Not Intersect(Range("G2:G" & Range("A" & Rows.Count).End(xlUp).Row), Target) Is Nothing And Target.Count = 1 Then

With Sheets("B-commande") ' On va bosser avec cette feuille

' Recherche si la Référence existe déjà dans la feuille BC

Set Cel = .Columns("A").Find(what:=Target.Offset(0, -6), LookIn:=xlValues, lookat:=xlWhole)

If Not Cel Is Nothing Then

' La référence existe ==> On va modifier la ligne

Ligne = Cel.Row

Else

' La référence n'existe pas ==> On va rajouter en fin

Ligne = .Range("A" & Rows.Count).End(xlUp).Row + 1

End If

[Surligner] If Target = "" Then ' On a effacé la quantité

.Range("A" & Ligne).Resize(1, 7).Delete shift:=xlShiftUp [/Surligner] ' On supprime dans BC

Else

Range("A" & Target.Row).Resize(1, 7).Copy .Range("A" & Ligne) ' On rajoute/modifie dans BC

End If

End With

End If

End Sub

Bonjour

Je désespère

je n'y connais rien en VBA est découvre au fur est a mesure

Personne pour me dire ce qui cloche? ou si il manque des infos

Cordialement

Bonjour,

En supprimant sur ton bon de commande les cellules de A à G, tu décales les cellules restantes vers le haut. Alors la formule de la colonne H cherche une partie de ligne au dessus qui n'existe plus, d'où l'apparition des #REF!

Pour moi il faut soit supprimer la ligne entière et reconstruire (par macro) la formule, soit juste supprimer les contenus

Bonsoir ouisansdoute

Merci pour la réponse

pour supprimer juste le contenue je fais comment ?

Cordialement

Je pense qu'un ClearContents au lieu du Delete suffira. Par contre il peut y avoir des lignes renseignées à la suite des cellules supprimées

Sa fonctionne mais oui sa me laisse une ligne vide

donc la formule VBA qui consiste à supprimer la ligne entière et reconstruire (par macro) la formule serais la quelle ?

Merci du pour l'aide

Un truc du genre

Rows(Ligne, Ligne).Delete Shift:=xlUp
    Range("H" & Ligne).FormulaR1C1 = "=RC[-4]*RC[-2]"
    

A la place de ta ligne

.Range("A" & Ligne).Resize(1, 7).Delete shift:=xlShiftUp 

merci pour le temps que tu me consacre

maintenant je suis encore nul en VBA et je ne voie pas bien comment appliquer le code

Bonjour

Sa ne fonctionne pas

Rows(Ligne, Ligne).Delete Shift:=xlUp

Range("H" & Ligne).FormulaR1C1 = "=RC[-4]*RC[-2]"

la ligne Rows(Ligne, Ligne).Delete Shift:=xlUp est surligné en jaune est je n'arrive pas a savoir ou sa cloche

Merci pour votre aide

Bon dimanche a tous

Bonjour,

Comme nous sommes voisin, je vais tenter de te donner un coup de main

Il me faut un peu plus d'informations.

Tu essaies de créer des bons de commandes via un catalogue ou seulement avec des données appartenant au fichier excel que tu nous fourni? Cette remarque car il y a des liaisons brisées à l'ouverture du fichier.

Ton problème est dans l'effacement des données avec cette partie de code?

La commande clear ne laisse rien. Tout le contenu des cellules est supprimé.

Sub Remise0()

Range("G5:G" & Range("A" & Rows.Count).End(xlUp).Row).ClearContents

With Sheets("B-commande")

If .Range("A13") <> "" Then

.Range("A13:G" & .Range("A" & Rows.Count).End(xlUp).Row).Clear

End If

End With

End Sub

Cordialement

Bonjour les Vosges

Oui j'ai un classeur ou je retrouve mes calcul de prix,(Base de donnée)

Je vais avoir plusieurs onglets récupérant les infos de ce Classeur maintenant le problème n'est pas là, pour moi s'est ok.

Le code VBA de la feuille Huiles essentielles sera copier sur la feuilles Huiles végétale etc

si la commerciale supprime un quantité pour x raison de n'importe qu'elle onglet la ligne correspondante dans le bon de commande soit supprimer mais que les codes de la colonne J soit reconstitué.

Je ne sait pas si j'ai réussi a être clair

j'ai joint un classeur sans les liens

Cordialement

Ps non le problème n’était pas avec le code du module mais avec le code de la feuille Huiles_Essentielles

Re bonjour

Je viens de constater que sur mes onglets Huiles_Essentielles et Huiles_Végétales j ais mis un bouton qui est censé effacer le contenue des colonnes I et J de l'onglet concerné sa efface du même coup les lignes du bon de commande.

si je fais remise a 0 sur l'onglet par exemple Huiles_essentielles il m'efface tout le bon de commande huiles essentielles et huiles vegetales

le but est que ce ne soit que les éléments de l'onglet concerné qui soit effacé du bon de commande et que l'on puise saisir et compléter le bon de commande avec d'autre produits

Mais ouf le classeur avance

A voir nouvelle version

Cordialement

C'est encore un peu confus pour moi.

J'ai fait une macro d'effacement des colonnes i et j. Elle est affectée aux boutons remise à zéro.

Est-ce que c'est ce que tu veux?

Cordialement

En fait il y a deux chose

1- la commerciale a saisie des quantités en colonne J soit de l'onglet Huiles_essentielles ou Huiles_vegetales ses quantité permette de remplir le bon de commande

- si la commerciale doit annuler une quantité elle doit pouvoir le faire individuellement et la ligne correspondante dans le bon de commande est supprimer

(la suppression devrais ce faire comme pour le bouton (remise à 0) mais que pour la quantité qui aura été supprimer dans l'onglet concerné)

- si la commerciale a terminer sa commande elle doit pouvoir supprimer toute les quantité en même temps de tous les onglets

Dur dur d'expliquer ce que l'on souhaite faire

Merci pour votre aide

J'ai modifié une ligne

.Range("A" & Ligne).Resize(1, 11).Delete shift:=xlShiftUp ' On supprime dans BC

Comme les cellules sont remontées et que 10 colonnes au lieu de 11 étaient remontées, il y avait une erreur dans les formules.

Dis moi!

Cordialement

voilà le bouton remise à zéro pour les feuille Huiles_x et la feuille bon de commande.

Tu remarqueras qu'il suffit de supprimer par exemple le % de remise des feuilles huiles_x pour que la ligne soit supprimée du bon de commande.

Je commence à comprendre où tu veux en venir.

Regarde, teste et tiens moi au courant

Cordialement

Bonsoir

Je ne souhaite pas supprimer tout le contenue des onglets Huiles_essentielles et Huiles_Vegetales mais juste le contenue des colonnes I et J

je souhaiterais que si une quantité soit supprime individuellement la ligne du bon de commande soit supprimé mais pas les code de la colonne K du bon de commande

J ai mis un nouveau fichier avec des commentaires en espèrent que sa soit plus clair

Cordialement

voilà ça me semble bon.

On repart de ce fichier ( v02) pour toute modification.

Car tout à l'heure tout ce que j'avais fait avait disparu. Pas cool

Bonne fin de soirée

Cordialement

Bonjour a tous

Pour ddetp88 je ne souhaite pas effacer toute les feuilles mais juste les colonnes I et J avec le bouton remise a 0 de chaque feuilles individuellement

pareille avec les futurs onglets

J ai tous repris a 0 dans ce que je voulais faire donc j'ai modifier le classeur en conséquence

le problème que je rencontre est de supprimer la ligne sa s'est bon mais serait il possible de rajouter une ligne a la suite de la dernier ligne pleines du bon de commande ce qui permettrait de garder la mise en page

Le problème est dans ce bout de code

If Target = "" Then ' On a effacé la quantité

.Range("A" & Ligne).Resize(1, 11).Delete shift:=xlShiftUp ' On supprime dans Bon-Commande

Cordialement

Bonne Jounée

Rechercher des sujets similaires à "effacement"