Explication code VBA

Salut tout le monde

Je suis confronté à un léger problème lors de l'étude d'un vba:

J'ai ce code (créé par Dubois):

Sub insertion()
  Application.ScreenUpdating = False
    Sheets("tableau").Select                'sélectionne onglet
            [a65536].End(xlUp)(2).Select    'va à la dernière cellule occupée
             Selection.EntireRow.Insert     'insert la saisie
             [saisie].Copy
            Selection.PasteSpecial Paste:=xlFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=True 'formules
End Sub

J'ai essayé de le recréer dans un autre document cependant voila, je ne sais pas à quoi correspond cette ligne

[saisie].Copy

et c'est bien évidemment celle qui fait planter mon vba dans l'autre fichier Si quelqu'un a une réponse svp

Autre question, comment faut-i faire pour insérer les lignes vertes de commentaire à côté du vba?

Merci d'avance salut

Salut le forum

[saisie] est un cellule nommée.

Pour la ligne vert, en VBA Outils > Options > Format de l'éditeur

Dans couleurs du code choisis celui que tu veux modifier.

Si tu parles de la balise Code du forum

Texte brut, ou partie de code
Pour afficher dans vos messages du texte sans mise en forme, avec une taille fixe de caractères, en police d'écriture de type Courrier ou bien encore des parties de code informatique sans interprétation (ex : description de balise BBCode) , vous devez encadrez votre texte avec les balises [code]

, exemple:

[b]Texte en Gras [/b]

donnera Texte en Gras (et non Texte en Gras)

Toute mise en forme utilisée dans les balises

sera donc ignorée.[/code]

Mytå

bonjour à tous,

comment faut-i faire pour insérer les lignes vertes de commentaire à côté du vba?

tu fait précéder le commentaire d'une apostrophe, c'est tout.

Claude

thomas,,

envoie ton projet, je t'expliquerai ce qui ne va pas et tu corrigeras toi-même .

c'est le meilleur moyen d'apprendre !

sert toi de "LexiqueVBA" en mode "Auto" pour écrire tes codes.

Bon courage

amicalement

Claude.

Salut tout le monde

Je te joins le fichier

https://www.excel-pratique.com/~files/doc/97vaXCOMPARAISON.xls

Comme tu verras le but est d'arriver au même résultat que la feuille "Cmparaison 3" dans la feuille COMPARAISON avec un tableau qui s'étende à volonté en terme de lignes

Rappel des problèmes:

Comment faire "suivre" le format

Comment faire pour prendre en compte la dernière ligne saisie dans le tableau et pas tout le temps la même?

Comment faire pour passer le lexique vba en mode "auto" je ne trouve pas?

Merci d'avance

Salut

Bonjour,

Comment faire "suivre" le format

Il faut dire à la macro de mettre en rouge si l'on prend la données dans la feuille

Comment faire pour passer le lexique vba en mode "auto" je ne trouve pas?

Tu parles de faire une macro automatiquement ? si oui -> OUTILS / MACRO / NOUVELLE MACRO puis tu enregistres tes opérations. Une fois terminé tu arrêtes ta macro en cliquant sur le bouton que tu vois sur ta feuille.

Pourquoi ne pas mettre les totaux CA prévisionnel et CA Realisé juste en dessous du titre comparaison ?

J'ai aussi l'impression que tu pourrais réaliser cela par tableau croisé dynamique. Cela t'éviterait de faire un programme et tu aurais un tableau interactif avec tes données.

A ce sujet, vois l'exemple ci-joint --> https://www.excel-pratique.com/~files/doc/H4pW4COMPARAISON.xls

Amicalement

Dan

Bonjour à tous,

Je n'ai pas eu le temps de regarder ton fichier, mais tu peux faire confiance à Dan, c'est

un de ceux qui m'a le plus aidé à démarrer.

Dan,

Comment faire pour passer le lexique vba en mode "auto" je ne trouve pas?

notre ami fait allusion au fichier "LexiqueVBA" sur "Applications Excel" du forum.

Salut tous les deux

Claude.

Salut tout le monde

Pas de soucis je fais largement confiance à Dan (j'ai vu pas mal de ses réponses et ça marche toujours) et en plus la solution du tableau croisé dynamiqe est je pense très adaptée à la situation.

Et vu que je suis un flemmard je vais faire une macro qui créera automatiquement le tableau

Merci beaucoup de cette idée Dan

Effectivement pour LexiqueVBA je fais allusion au fichier et je n'ai toujours pas trouvé comment le mettre en mode automatique.

PS: ce fichier est vraiment génial!!!!!!!!!!

re,

En fait tu n'as pas besoin de faire une macro pour créer un TCD. On le fait une fois pour toute puis pour le mettre à jour clique droite dans le TCD et choisir "actualiser les données". La mise à jour peut se faire par macro bien sûr.

Pour tes tableaux dans prev et CA, il faudra utiliser une formule pour que le TCD prenne toujours toutes les nouvelles données.

A te relire

Dan

Re

Pour tes tableaux dans prev et CA, il faudra utiliser une formule pour que le TCD prenne toujours toutes les nouvelles données.

C'est-à-dire???

J'ai un petit souci c'est que je n'arrive pas a faire le tableau croisé dynamique comme le tien (le dernier que tu as fait qui reprend la différence entre le CAP et le CAR)

Pourrais tu me décrire la procédure stp (je pense avoir un problème au niveau de la plage de donés, à moins que tu ne l'ai créé à partir d'autre chose)

Merci

Salut

re,

En fait il s'agit d'inserer un "élément calculé".

  • Etape 1 : Choisis "plage de feuille de calcul"
  • Etape 2 : laisse l'option et clique sur "continuer"
  • Etape 3 : Dans plage sélectionne la plage dans la feuille PREV puis cliques sur "ajouter". Refais la même opération pour la feuille CA.
  • Clique sur "terminer"
  • clique dans colonne et décoche "PU" et "Quantité"
  • Clique droite sur CAR puis choisis "formule" -> éléments Calculés". Cela te fait apparaitre une fenetre
  • Dans "nom", mets Delta par exemple
  • Dans Formule, tapes CAR -CP puis OK (tu peux aussi double cliquer sur les éléments CAR et CAR dans la liste pour les placer dans le champ "formule"
  • Confirme par OK et tu verras ton nouveau champ dans le TCD.
  • Pour enlever "total", fais un clique dans le TCD et là choisis "option du tableau" puis décoche "total de lignes"

Fais cet exercice pour comprendre car ensuite il faudra nommer tes plages dans les feuille PREV et CA de manière à réutiliser ces noms pour construire les TCD.

Mets tes TCD l'un à coté de l'autre mais surtout pas l'un en dessous de l'autre car il faut laisser de la place au TCD pour grandir e cas d'ajout de données.

A te relire

Dan

Re

Merci pour le début ça fonctionne mais

Clique droite sur CAR puis choisis "formule" -> éléments Calculés". Cela te fait apparaitre une fenetre

  • Dans "nom", mets Delta par exemple
  • Dans Formule, tapes CAR -CP puis OK (tu peux aussi double cliquer sur les éléments CAR et CAR dans la liste pour les placer dans le champ "formule"
  • Confirme par OK et tu verras ton nouveau champ dans le TCD.
  • Pour enlever "total", fais un clique dans le TCD et là choisis "option du tableau" puis décoche "total de lignes"

Je n'ai pas "formule" ni "éléments calculés" et je ne trouve pas d'équivalent dans les différents menus et options...

Je bosse sur excel 2003 je ne sais pas si tu travailles sur une autre version et si ça change quelque chose.

T'as une solution??

Merci

Cordialement

Re

Autre chose, même en continuant la saisie et en mettant à jour les données, les tableaux ne grandissent pas. J'ai essayé en changeant de plage de sélection (collones entières de A à D) et la CAR et CAP ne me donne pas les valeurs.

Je te transmet le fichier car je ne sais pas bien comment l'expliquer

https://www.excel-pratique.com/~files/doc/Comparaison_final_2.zip

Amicalement

Re,

Crée un nom pour chaque plage comme suit :

1.Menu / Insertion nom / défnir

Dans Nom tape, PREV

Dans ref mets à=DECALER(PREV!$A$1;;;NBVAL(PREV!$A:$A);4)

2. Menu / Insertion nom / défnir

Dans Nom tape, CA

Dans ref mets à =DECALER('CA '!$A$1;;;NBVAL('CA '!$A:$A);4)

Refais tes TCD en mettant le nom PREV et/ou CA à l'étape 1 et ce, selon l'endroit où tu vas aller prendre tes données.

Dan

Salut

Désolé de ne pas avoir répondu plus tôt j'ai pas mal de travail

J'essaye ça je te tiens au courant

Merci

Salut

Salut

Ca marche

Merci beaucoup

Ciao

Rechercher des sujets similaires à "explication code vba"