Aide pour un codage

Bonjour à toute la communauté,

Pourriez-vous m'apporter votre lumière en matière de VBA, car je débute.

j'aimerais reproduire la formule suivante: SI(F7="Luc";LIGNE()-5;"") pour avoir le même résultat que j'ai sur le Tableau1 dans un nouveau Tableau2. fichier ci-joint .

On ma conseiller d'utiliser la boucle "For , next", mais comme je début j'ai un peu de mal à bien transcrire toutes les informations pour avoir le même résultat.

Je vous remercie par avance de votre réponse.

5vba-exo.xlsm (18.34 Ko)

Jérémie.

Bonjour,

je ne vois pas l'intérêt de passer par une macro

tu fais un copier/coller et tu tires vers le bas

1vba-exo.xlsm (18.34 Ko)

si tu tiens à avoir une macro pour "exo"

Private Sub CommandButton1_Click()

    Range("E6").FormulaR1C1 = "=IF(RC[1]=""Luc"",ROW()-5,"""")"
    Range("E6").AutoFill Destination:=Range("E6:E13"), Type:=xlFillDefault

    Range("H6").FormulaR1C1 = "=IF(RC[1]=""Luc"",ROW()-5,"""")"
    Range("H6").AutoFill Destination:=Range("H6:H13"), Type:=xlFillDefault

End Sub
3vba-exo.xlsm (18.35 Ko)

LA solution excel la plus intelligente est de définir des tableaux au sens excel du terme

=SI([@nom]="Luc";LIGNE()-5;"")
4vba-exo.xlsm (14.44 Ko)

Bonsoir Steelson,

Oui il me faut une formule VBA sur cette fonction que je puisse comprendre et adapter sans faire des copies-coller , car je suis en train de créer une application" plus complète qui imbrique plusieurs feuilles et je bloque un peu et je voulais tester aussi cette formule pour voir.

La formule que tu m'as envoyer j'ai pu le voir aussi en faisant un enregistrement de macro et allé voir ce que cela donne. Justement je l'ai pas trop compris et j’espérais avoir une explication plus souple ici.

Merci quand même de m'avoir répondu

Bonsoir guipsii-01,

screen

un titre plus explicite SVP !!! (à changer !)

dhany

Bonsoir,

fait

merci

c'est un peu mieux, mais c'est encore vague !

dhany

je propose : « Recopie de formule vers le bas (en VBA) »

qu'en dis-tu ? c'est pas mal, non ?

dhany

Je me suis peut être mal exprimer.

Niveau excel je me débrouille un peu , je suis en train de faire une application et je beug sur certain codage vu que je le fais plus avec l'aide de VBA.

je vais épurer un peu le travail et je referai une demande Plus explicite

merci

@guipsii-01

ok, alors bonne chance pour la suite de ton projet !

dhany

Merci

Bonjour,

La formule que tu m'as envoyer j'ai pu le voir aussi en faisant un enregistrement de macro et allé voir ce que cela donne. Justement je l'ai pas trop compris et j’espérais avoir une explication plus souple ici.

    Range("E6").FormulaR1C1 = "=IF(RC[1]=""Luc"",ROW()-5,"""")"
    Range("E6").AutoFill Destination:=Range("E6:E13"), Type:=xlFillDefault

en clair ...

la macro met dans la cellule E6 la formule suivante (en anglais en VBA) : si la cellule de même ligne (R = Row) et de colonne +1 (C[1]), alors je mets le numéro de la ligne ROW() moins 5, sinon je ne mets rien, c'est--dire "", mais il faut ici doubler les guillemets, donc 4 au total """" car la formule est elle-même écrite en texte et donc encadrée par des guillemets

ensuite, elle remplit automatiquement de E6 à E13

Suite à ton explication je commence à mieux comprendre donc il a traduit complètement le texte! Je vois un peu clair.

Comme je débute le VBA en autodidacte je suis habituer pour l'instant au: " if (condition) then, vrai .... Else Faux... et quand j'ai vu tous ces crochets et guillemets , j'ai beuger aha

je vais me re-pencher dessus et bouquiner encore un peu.

Encore merci de ton explication

Oui MAIS ...

Mon optique est de ne JAMAIS utiliser le VBA sauf exception pour faire des formules ! la feuille excel fait très bien les calculs, donc pas besoin, et les tableaux permettent de reproduire les formules sur toutes les lignes ! ou alors un TCD suffit !

Le VBA, quand on ne peut pas s'en passer, sert à

  • automatiser une procédure,
  • à envoyer des mails,
  • éditer un QRCode,
  • gérer les accès,
  • interroger une page web
  • ou à créer une Base de Données à partir d'une feuille dans laquelle on entre les données individuelles (ais PowerQuery a tendance à remplacer ...)
  • etc.

pratiquement jamais à faire du calcul !

Je te rejoins complètement sur le faite que Excel suffit largement à faire des calculs , et autres. Et en aucun cas personnellement je n'utiliserai VBA pour faire de simple calcul.

Comme tu l'as expliquer plus bas, effectivement je suis en train de créer, enfin j'essaie de créer une procédure de Gestion pour que: par exemple quand je réceptionnaire rentre une quantité d'un produit que tout mon classeur s'actualise aussitôt.(un exemple parmi tant d'autres).

Et dans excel je sais bien imbriquer plusieurs formules pour avoir un résultat souhaiter, et j'essaie de transposer ces formules dans VBA pour voir si le résultat escompter est la bonne , pour l'instant je multiplie les nuits blanche pour avancer à pas d'escargot mais bon l'essentiel c'est d'avancer

la macro met dans la cellule E6 la formule suivante (en anglais en VBA)

une précision : l'enregistreur de macro te donne FormulaR1C1 , mais on peut utiliser FormulaLocal pour se rapprocher de ce qui est écrit directement dans une cellule

bon courage !

Merci !

Rechercher des sujets similaires à "aide codage"