Macro excel

Résolu
Bonjour,

J'aimerais savoir si il est possible de créer une macro qui ne s'appliquera que sur des cellules sélectionnées à l'aide de la souris. En fait je voudrais appliqué une formule de calcul à une colonne mais cette colonne n'est pas la même dans mes différentes feuilles excel.

Merci de votre aide comme toujours

8 réponses

  1. Je comprend pas car moi quand je la lance je n'ai pas d'erreur qui s'affiche. La macro marche sans débogage mais il y a aucune action qui se crée. Est ce le format de ma cellule d'origine? Ça y est en fait ça marché pas car j'avais des ,00 à la fin de mes chiffres si je les enlève ça marche.
    Merci pour votre aide comme d'habitude vous avez résolu mon problème. Vivement que j'approche votre niveau pour arrêter de vous embêter et aider les autres.
    1. Contributeur
      J'ai tester la 2ème macro avant de la poster et elle fonctionne PARFAITEMENT

      QUEL EST L'ERREUR (sur quel ligne et le libellé de l'erreur)

      OU EST MISE LA MACRO (module de feuille ou module général)
      1. Tout d'abord merci de vos réponses.
        La macro de pijaku marche pour la sélection mais après j'ai un problème pour intégrer la mienne à la suite qui plante. Par contre lermite22, t'as première macro ne fonctionne pas donc la fin de la seconde non plus. C'est peu être moi qui me trompe mais j'ai juste copier et coller sous visual basic.
        Merci à vous
        1. Contributeur
          Finalement, une macro qui fait les deux...
          Sub ReCode2() 
          Dim Cel As Range, Txt As String, TB 
          Dim plage As Range 
              TB = Split(Selection.Address, ":") 
              If UBound(TB) > 0 Then 
                  If TB(0) = TB(1) Then 'sélection colonne 
                      Set plage = Range(Cells(1, TB(0)), Cells(Cells(65536, TB(0)).End(xlUp).Row, TB(0))) 
                  Else 'sélection plage 
                      Set plage = Selection 
                  End If 
              Else 
                  Set plage = Selection 
              End If 
              For Each Cel In plage 
                  If Cel <> "" Then 
                      Txt = Cel.Text & String(5, "0") 
                      Cel = Val(Left(Txt, 6)) 
                  End If 
              Next Cel 
          End Sub

          Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
          NOTE : Je ne répond pas aux MP pour les questions techniques.
          1. Contributeur
            Un truc qui fait tout en une fois ça t'intéresse ?
            J'ai supposé que tes cellules sont au format nombre.
            Sub ReCode()
            Dim Cel As Range, Txt As String
                For Each Cel In Selection
                    Txt = Cel.Text & String(5, "0")
                    Cel = Val(Left(Txt, 6))
                Next Cel
            End Sub

            Comme pour l'autre macro, mettre un raccourci.
            Mode d'emploi Idem aussi.. sélectionner la plage et taper le raccourci.
            ATTENTION : Si tu sélectionne toute une colonne ça va durer longtemp.
            Il faudrait une macro spécifique pour une sélection de colonne
            1. Merci pour vos réponses,
              En fait mon probleme exact est que j'ai des chiffres 10, 110,1120. Je voudrais ramener ces chiffres a 6 chiffres soit 100000,110000, 112000. Mais ces chiffres ne sont pas tous le temps dans la même colonne dans mes feuilles excel. Elles sont des fois en colonne A ou C ... C'est pourquoi je voudrais créer une macro qui une fois sélectionne une colonne ou une plage. Ensuite une fois que cette sélection est faite j'insere 2 colonne sur la 1er je multiplie mon chiffre A1(10....) par 100000, sur la seconde j'utilise la fonction gauche (B1;6), je copie la valeur trouver et fait un collage valeur en A1 et supprime les 2 colonnes insérer au début.
              Voila en détail ce que je cherche a faire je sais pas si j'ai été assez clair.
              Merci a vous je débute en macro et je ne suis pas un expert c'est pour ca je fait appel à des experts comme vous.
              1. Contributeur
                Bonjour,
                Appliquer un CALCUL sur une plage sélectionnée avec la souris ?? !! :-)

                Copier le code ci-dessous.
                Remplacer Sum par la fonction souhaitée.
                Sub TotalPlage()
                    MsgBox = WorksheetFunction.Sum(Selection)
                End Sub

                Mettre un raccourci sur la macro. Par exemple Ctrl+P
                Mode d'emploi...
                Sélectionner une plage et taper le raccourci
                A+
                1. Contributeur
                  Correction..
                  Sub TotalPlage()
                      Dim Tot As Double
                      Tot = WorksheetFunction.Sum(Selection)
                      MsgBox Tot
                  End Sub

                  Pour une colonne sélectionner la colonne en cliquant sur sont entête.
              2. Modérateur
                Bonjour,
                Oui c'est possible.
                Voici deux codes illustrant ce propos :
                Sub SelectionPlageAvecSourisetrestitution()
                Dim MonTableau() As String
                Dim Plage As Range
                Dim j As Integer
                Set Plage = Application.InputBox("Sélectionnez une plage !", "Sélection de cellules", Type:=8)
                MonTableau = Split(Plage.Address, ",")
                    For j = 0 To UBound(MonTableau)
                        MsgBox MonTableau(j)
                    Next j
                End Sub


                'http://ericrenaud.fr/
                Sub SelectionPlageAvecSouris()
                      Dim Plage As Range
                      Set Plage = Application.InputBox("Sélectionnez une plage !", "Sélection de cellules", Type:=8)
                      MsgBox ("La plage que vous avez séléctionnez est : " & Plage.Address)
                End Sub