La question bete du jour

Bonsoir,

La question bête du jour, comment faire pour insérer une solution qui marche bien dans son propre classeur ?

Je ne connais vraiment pas grand chose en VBA et je trouve ici beaucoup d'aide pour mon projet, par contre je n'arrive pas a exploiter l'aide que l'on me donne.

Tantôt j'avais besoin d'aide pour une stat, on ma renvoyer un fichier test avec du VBA, cela marche bien mais je ne sais pas comment le mettre en place dans mon propre classeur…

a me relire pas sur que je me sois bien exprimer ^^

Bonsoir zairios,

pour intégrer une solution VBA dans ton classeur, il faut d'abord que ce classeur soit un .xlsm ; donc si c'est un .xlsx, c'est obligé de le convertir en .xlsm ; ensuite : faire Alt F11 pour aller sur la fenêtre « Microsoft Visual Basic »

* si c'est un code VBA à insérer dans un module standard : Alt i m insère un nouveau module, dont la page blanche est affichée côté droit : c'est là qu'il faut copier / coller le code VBA de la solution (c'est le cas le plus courant)

* si c'est un code VBA événementiel : la destination du copier/coller est dans ThisWorkbook pour un événement du classeur ; ou dans le module de la feuille concernée pour un événement de feuille de calcul

* si c'est un code VBA de formulaire : à placer dans le module du UserForm adéquat

* y'a aussi les modules de classe, mais là, c'est très technique !

après le copier / coller, faire Alt F11 pour retourner sur Excel

dhany

Bon ca avence lol

J'ai fais comme tu m'as dit, j'ai créer le module ( module2) et j'ai copier le code dedans.

en cliquant sur F5 le code se lance et marche bien sur la page Excel ouverte ( moi qui cherchais comment lui indiquer ou cela devais marcher…).

Parcontre je tombe sur une erreure avec le code:

Sub CompteItems()
  Set d = CreateObject("Scripting.Dictionary")
  Tbl = Range("g6", [g65000].End(xlUp)).Value
  For Each C In Tbl
    If C <> 0 Then d(C) = d(C) + 1
  Next C
  [M7] = "Ville"
  [M8].Resize(d.Count, 1) = Application.Transpose(d.keys)
  [N8].Resize(d.Count, 1) = Application.Transpose(d.items)
  [M8].Sort Key1:=[M8], Order1:=xlAscending, Header:=xlYes
End Sub

"Erreur d'éxécution '1004'

Pour ce faire, la taille des cellules fusionées doit être identique. "

et ca me met la derniere ligne du code en jaune.

Bonjour,

la réponse est dans le message d'erreur non ?

Défusionne tes cellules. Les fusions sont à réserver aux titres. Et encore, pas toujours, un simple copié-collé de colonne devient problématique avec...

Ceci dit, vba ne se justifie pas ici. Tu aurais dû suivre la piste indiquée par U.Milité : un simple TCD (tableau croisé dynamique)

C'est un outil d'une grande puissance à connaitre absolument.

Tableau Croisé Dynamique (TCD) : http://www.mdf-xlpages.com/modules/smartsection/item.php?itemid=109

eric

j'ai supprimer la colonne fusionner ( qui n'avait rien avoir dans le code) et tout marche !

bizarre

pour le TCD je vais y regarder aussi, je vais certainement en avoir une utilité pour mon projet

superbe titre, les moteurs de recherche vont apprécier ...

Bonsoir Steelson,

tu a écrit :

superbe titre, les moteurs de recherche vont apprécier ...

t'en as d'la chance ! vu qu'le tire est « La question bête du jour », ça fait qu'il te reste les 364 autres jours de l'année pour poser ta question bête quotidienne ! (et même 365 pour les années bissextiles !)

les moteurs de recherche vont être ravis ! je présage que leur unique réponse à toutes les requêtes sera :

« c'est du délire ! »

dhany

Rechercher des sujets similaires à "question bete jour"