Problème Code VBA et formules

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

  • code vba.xlsm
    46.5 KB · Affichages: 53
  • code vba.xlsm
    46.5 KB · Affichages: 61
  • code vba.xlsm
    46.5 KB · Affichages: 60
Dernière édition:

gosselien

XLDnaute Barbatruc
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 ?
 

Loisel

XLDnaute Nouveau
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 :eek:
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. :eek:
J'espère ne pas vous avoir gêné :confused:
 

Si...

XLDnaute Barbatruc
Re : Problème Code VBA et formules

salut

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

@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é :eek: (voir messages suivants)
 

Pièces jointes

  • formules VBA.xlsm
    33.2 KB · Affichages: 34
Dernière édition:

gosselien

XLDnaute Barbatruc
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
 

Si...

XLDnaute Barbatruc
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 :eek:, 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 !
 

Loisel

XLDnaute Nouveau
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 :eek:
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. :cool:
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 :confused:

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 ?
 

gosselien

XLDnaute Barbatruc
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 :)
 

Loisel

XLDnaute Nouveau
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 :cool:
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") :confused:
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 :eek:

Que pensez-vous de cette idée ? Plutôt saugrenue ?
 

laurent950

XLDnaute Accro
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
 

Loisel

XLDnaute Nouveau
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.
 

Loisel

XLDnaute Nouveau
Re : Problème Code VBA et formules

bonjour Patrick, Si......

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

....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") :confused:
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.:confused:

Bonne soirée à vous deux :)
 

Si...

XLDnaute Barbatruc
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

  • formules VBA 2.xlsm
    35.2 KB · Affichages: 32

Loisel

XLDnaute Nouveau
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 !!!! :cool:
Pour ma part, vous venez d'illuminer mon dimanche :)
Je vais donc regarder tout ceci.
 

Discussions similaires

Statistiques des forums

Discussions
312 243
Messages
2 086 551
Membres
103 246
dernier inscrit
blablasss