Problème Code VBA et formules

  • Initiateur de la discussion Initiateur de la discussion Loisel
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Loisel

XLDnaute Nouveau
Bonjour le forum,

Grâce à l'aide de l'un de vous, j'ai pu mettre en forme le code vba dans le fichier joint.

Mais lors du lancement de la macro instruction, si les conditions sont respectées, à l'inverse les données saisies dans les colonnes désignées sont systématiquement supprimées.

Ce que je voudrais : c'est avoir simultanément la recherche des conditions inscrites dans la macro tout en conservant les données existantes dans tous les autres cas.

Vous trouverez dans le fichier 2 onglets : l'un tab sur lequel agit la macro et l'autre tableau souhaité.

Quelqu'un parmi vous pourrait-il m'apporter de l'aide à nouveau ?
 

Pièces jointes

Dernière édition:
Re : Problème Code VBA et formules

La colonne H parce que elle est remplie et qu'elle contient "agence" en effet...
Pour le reste, j'ai scindé en 3 fois AE-AF-AG et ceci "' & Cells(Rows.Count, 6).End(xlUp).Row)" est en remarque, non utilisé 🙂
Ma dernière proposition en 3 parties ne convient pas ?
 
Re : Problème Code VBA et formules

A dire vrai, il semble que oui et je la continue pour les colonnes AH à AM
mais je commence à avoir des maux de tête ayant passé tout mon après-midi dessus
pour de bien piètres résultats 😱
Je crois que j'y verrais plus clair demain.

Si je vous ai posé ces questions, Gosselien, c'est uniquement pour mieux comprendre l'action des différentes lignes de commandes. 😱
J'espère ne pas vous avoir gêné 😕
 
Re : Problème Code VBA et formules

salut

@gosselien : merci de m'avoir suppléé 😀.

@Loisel : j'espère que tu as bien dormi ! 😉.

Tu as 4 conditions mais qui engendrent 5 cas donc 5 formules (voir les tableaux et si je ne me suis pas trompé).

Eh oui, je me suis trompé 😱 (voir messages suivants)
 

Pièces jointes

Dernière édition:
Re : Problème Code VBA et formules

Bonjour à vous 2 et aux autres aussi 🙂

Il n'y aurait pas doublon pour AL ?

Set P = Range("AL2:AL" & L)
P.SpecialCells(4).FormulaR1C1 = _
"=IF(AND(RC8=""agence"",OR(RC6=""brun"",RC6=""cdr"")),""wwww"","""")"

et repris ici aussi (brun et cdr)

Set P = Range("AL2:AL" & L)
P.SpecialCells(4).FormulaR1C1 = _
"=IF(AND(RC8=""agence"",OR(RC6=""Inter"",RC6=""t/s"",RC6=""brun"",RC6=""cdr"")),""wwww"","""")"

Patrick
 
Re : Problème Code VBA et formules

re
Bonjour à vous 2 et aux autres aussi 🙂

Il n'y aurait pas doublon pour AL ?

Set P = Range("AL2:AL" & L)
P.SpecialCells(4).FormulaR1C1 = _
"=IF(AND(RC8=""agence"",OR(RC6=""brun"",RC6=""cdr"")),""wwww"","""")"

et repris ici aussi (brun et cdr)

Set P = Range("AL2:AL" & L)
P.SpecialCells(4).FormulaR1C1 = _
"=IF(AND(RC8=""agence"",OR(RC6=""Inter"",RC6=""t/s"",RC6=""brun"",RC6=""cdr"")),""wwww"","""")"

Patrick

Il Y a bien une erreur 😱, après recopie, j'ai tout bêtement oublié de corriger la dernière plage ( Set P = Range("AM2:AM" & L)
Je corrige le fichier !
 
Re : Problème Code VBA et formules

Bonjour à vous deux

Désolée, je n'ai pu me connecter plus tôt.

Merci Si.... , j'ai eu une nuit un peu agitée mais çà va 🙂
Je n'ai pas encore regardé votre fichier et donc le travail que vous avez fait pour moi 😱
en revanche, j'ai continué l'exemple donné par Gosselien hier soir à partir de votre macro et cela fonctionne vraiment très bien 🙂
Tous les deux, vous êtes de vrais pro. 😎
Un grand merci car sans vous, je ne serais jamais parvenue à trouver une solution.

Juste un "micro bug" en colonne AL qui fait apparaitre tout au long de celle-ci une erreur (petit triangle vert en haut à gauche de chaque cellule) qui correspond à : la formule de cette cellule diffère des formules de cette zone de la feuille de calcul.
J'ai donc pris le soin de tout vérifier et la formule figurant dans la macro est correcte, il n'y a pas non plus d'incidence quant au résultat attendu ... Seul le petit triangle intrigue 😕

Sans vouloir abuser, pourriez-vous me dire pourquoi le code doit parfois être placé directement sur la feuille (comme c'est ici le cas) et parfois dans un module ? Quelles sont les raisons de tel ou tel choix ?
 
Re : Problème Code VBA et formules

Ce bug n'a pas l'air de perturber le bon fonctionnement... 🙂 tant mieux
Sauf erreur, pour le code, si tu le mets dans la feuille il n'y aura pas besoin de dire que le travail se fait sur cette feuille précise et on pourrait le mettre par exemple dans une procédure "before double clic" ce qui fait qu'il se lancerait après une double clic sur une cellule de ton choix 🙂 (procédure evénementielle, il y a d'autres).
Mais on peut aussi le mettre dans un module en précisant sur quelle feuille il doit faire son travail ...
Si je me trompe à ce sujet, d'autres se chargeront, j'espère de te donner plus d'explications 🙂
 
Re : Problème Code VBA et formules

Patrick,

Merci à nouveau pour toutes ses précisions et pour l'aide que vous m'avez apportée, vous comme Si .... 🙂
Le fichier de Si.... est incroyable 😎
En fait, je pensais plutôt associer ce code à une procédure (placée dans un module) que j'ai déjà dans mon fichier qui se lance via un bouton et commence ainsi ......

Code:
Sub EXTRA()
Dim NDF As String, rep As String

Application.ScreenUpdating = False
With Sheets("tab")
    Set bdd = .Cells(1, 1).Resize(Application.CountA(.[B:B]), Application.CountA(.[1:1]))
 End With

With ActiveWorkbook.Worksheets("INTER CG")
.........

Je pourrais peut être mettre le code avant With ActiveWorkbook.Worksheets("INTER CG") 😕
Cela éviterait d'oublier de lancer la macro qui "examine" les différentes conditions.
Mais malheureusement ma procédure existante ne se lance pas par clic comme celle réalisée grâce à votre aide 😱

Que pensez-vous de cette idée ? Plutôt saugrenue ?
 
Re : Problème Code VBA et formules

Bonsoir,

bdd c'est = a qu'elle objet c'est pas défini dans votre procédure ?

VB:
Sub EXTRA()
Dim NDF As String, rep As String
Dim Ftab as worksheet
set Ftab = worksheets("tab")
Application.ScreenUpdating = False
'With Sheets("tab")
    Set bdd = Ftab .Cells(1, 1).Resize(Application.CountA(.[B:B]), Application.CountA(.[1:1]))
 'End With

' Ci-dessous passer cela aussi en objet
With ActiveWorkbook.Worksheets("INTER CG")
laurent
 
Re : Problème Code VBA et formules

Bonsoir Laurent

Pour répondre à votre question, bdd étant défini dans le gestionnaire de nom, il n'est pas nécessaire de le faire à nouveau dans mon code.

Mais je ne comprends pas vos remarques, en vert, au niveau du code.
Tel qu'il est écrit, la macro exécute exactement ce que je souhaite.
Ma question portait sur la possibilité d'associer celle présente sur ces post et la macro déjà existante.
 
Re : Problème Code VBA et formules

bonjour Patrick, Si......

N'ayant eu aucune réaction à mon post d'hier 😱

....je pensais plutôt associer ce code à une procédure (placée dans un module) que j'ai déjà dans mon fichier qui se lance via un bouton et commence ainsi ......
Code:
Sub EXTRA()
Dim NDF As String, rep As String
Application.ScreenUpdating = False
With Sheets("tab")
    Set bdd = .Cells(1, 1).Resize(Application.CountA(.[B:B]), Application.CountA(.[1:1]))
 End With

With ActiveWorkbook.Worksheets("INTER CG")
.........

Je pourrais peut être mettre le code avant With ActiveWorkbook.Worksheets("INTER CG") 😕
Cela éviterait d'oublier de lancer la macro qui "examine" les différentes conditions.
Mais malheureusement ma procédure existante ne se lance pas par clic ......

J'en déduis qu'il n'est pas faisable de les associer puisque il n'y a pas de lancement par clic dans ma procédure existante.😕

Bonne soirée à vous deux 🙂
 
Re : Problème Code VBA et formules

re

désolé, je n'avais pas vu la dernière demande.
Si tu veux intégrer la macro, tu dois, pour l'appeler, la transposer dans le Module mais en modifiant la base d'application.
Vois le fichier joint dans lequel j'ai modifié la détermination des dernière ligne et colonne.
 

Pièces jointes

Re : Problème Code VBA et formules

Bonjour Si.....

Ne soyez pas désolé. Votre aide m'a été d'un grand secours sans oublier celle de Gosselien.
Waouh, donc il est possible d'associer les 2 codes. Une fois encore, trop fort !!!! 😎
Pour ma part, vous venez d'illuminer mon dimanche 🙂
Je vais donc regarder tout ceci.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour