begin process at 2012 02 16 04:39:53
  Trouver un code source :
 
dans
 
Accueil > 

Tutoriels

 > 

VBA

 > [VBA EXCEL] AIDE AUX DÉBUTANTS, QUELQUES MORCEAUX DE CODES

[VBA EXCEL] AIDE AUX DÉBUTANTS, QUELQUES MORCEAUX DE CODES


 Information sur le tutoriel

Déposé par tof008 le 20/07/2006 10:49:04
Dans la catégorie VBA
Vu : 167 105 fois
 

Ecrire un message privé à l'auteur
Commentaire sur cette source (35)
Ajouter un commentaire et/ou une note

Note :
8,67 / 10 - par 9 personnes
8,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

 Description

Ce tutorial permet de poser quelques bases de la programmation en VBA. Il a pour seule prétention d'aider ceux qui débutent, sans plus ni moins! J'espere que vous trouverez un peu d'aide dans ces quelques lignes

Tutorial

Suite à de nombreuses questions posées sur le forum et relatives à VBA Excel, j?ai décidé de créer ce petit tutorial qui aidera les débutants à de familiariser avec VBA.

            Les quelques bases necessaires au travail sous Excel seront réunies dans ce tutorial, qui n?a pas plus d?ambition que de fournir un point de départ.

            Les différentes méthodes décrites par la suite ne sont évidemment pas les seules possibles, ni même les meilleures, mais elles fonctionnent.

 

Commencons par les bases :

 

Selection d'une feuille

 

Sheets("NomDeLaFeuille").Select

 

Selection d'une cellule

 

Range("A1).Select

 

Ouverture d'un autre fichier Excel

 

ChDir "Chemin du repertoire du fichier"

    Workbooks.Open Filename:= _

        " Chemin du repertoire du fichier\fichier.xls "

 

Fermeture d'un fichier  

ActiveWindow.Close pour fermer le fichier en cours

Ou

    Workbooks.Close Filename:= _

        " Chemin du repertoire du fichier\fichier.xls "

 

Maintenant que les bases sont posées, voyons comment parcourir le fichier :

 

Parcourir les lignes

 

i = 1

    Sheets("Base").Select

    While Not Range("A" & i & "").Value = ""

    i = i + 1

    Wend

=>     Permet de se placer sur la premiere ligne vide

 

Parcourir les colonnes

 

While Cells(1, i) <> ""

i = i + 1

Wend

 

 

'permet de trouver la lettre associée au chiffre pour la colonne

NumCol = Cells(1, i).Column

lettre = IIf(NumCol > 26, Chr(64 + NumCol \ 26) & Chr(64 + NumCol Mod 26), Chr(64 + NumCol))

=>    Se place sur la premiere colonne vide

 

Maintenant que nous savons parcourir, voyons comment tirer des formules, adapter un graphique?

 

Tirer les formules

 

Range("A3:Z3").Select ?selection de la ligne contenant la formule

    Selection.AutoFill Destination:=Range("A3:Z" & i - 1 & ""), Type:=xlFillDefault

    Range("A3:Z" & i - 1 & "").Select

 

Adapter un graphique  

ActiveSheet.ChartObjects("Graphique 3").Activate

    ActiveChart.SeriesCollection(3).Select

    ActiveChart.SeriesCollection(3).XValues = "='% Nom classeur?!R4C1:R" & i & "C1"

    ActiveChart.SeriesCollection(1).XValues = "='% Nom classeur?!R4C1:R" & i & "C1"

    ActiveChart.SeriesCollection(2).XValues = "='% Nom classeur?!R4C1:R" & i & "C1"

    ActiveChart.SeriesCollection(3).Values = "='% Nom classeur?!R4C5:R" & i & "C5"

    ActiveChart.SeriesCollection(2).Select

    ActiveChart.SeriesCollection(2).Values = "='% Nom classeur?!R4C7:R" & i & "C7"

    ActiveChart.SeriesCollection(1).Select

    ActiveChart.SeriesCollection(1).Values = "='% Nom classeur?!R4C3:R" & i & "C3"

 

Cela permet de prendre en compte toutes les données et de les associer au graphique

 

Adapter la taille des cellules

'redimensionnement des cellules

    Rows("2:" & i & "").Select

    Selection.RowHeight = 25

    Range("A1:H1").Select

 

Changer les bordures  

' on s'occupe des bordures du tableau

Range("B3:H" & i & "").Select

    Selection.Borders(xlDiagonalDown).LineStyle = xlNone

    Selection.Borders(xlDiagonalUp).LineStyle = xlNone

    With Selection.Borders(xlEdgeLeft)

        .LineStyle = xlContinuous

        .Weight = xlMedium

        .ColorIndex = xlAutomatic

    End With

    With Selection.Borders(xlEdgeTop)

        .LineStyle = xlContinuous

        .Weight = xlMedium

        .ColorIndex = xlAutomatic

    End With

    With Selection.Borders(xlEdgeBottom)

        .LineStyle = xlContinuous

        .Weight = xlMedium

        .ColorIndex = xlAutomatic

    End With

    With Selection.Borders(xlEdgeRight)

        .LineStyle = xlContinuous

        .Weight = xlMedium

        .ColorIndex = xlAutomatic

    End With

    With Selection.Borders(xlInsideVertical)

        .LineStyle = xlContinuous

        .Weight = xlMedium

        .ColorIndex = xlAutomatic

    End With

    With Selection.Borders(xlInsideHorizontal)

        .LineStyle = xlContinuous

        .Weight = xlMedium

        .ColorIndex = xlAutomatic

    End With

 

Ce code permet de mettre des bordures interieures et exterieures sur un tableau. Le 'i' permet de se placer sur la derniere ligne du tableau.

 

Recuperer une valeur sur une autre feuille

 

nb = Range("B" & i & "").Value

 Sheets("nb rebut").Select

  Range("C" & j & "").Value = nb

 

Insérer ou effacer une ligne

Rows("4:4").Select

    Selection.Delete Shift:=xlUp ' pour supprimer

 

Rows("5:5").Select

    Selection.Insert Shift:=xlDown ' pour insérer

 

Voila, je l'espère, quelques morceaux de codes qui pourront vous aider. Je ne suis pas un pro en VBa, mais j'ai du travailler un peu dessus, et j'ai vu pas mal de questions qui trouveront des réponses dans ces quelques lignes. Ce tutorial est loin d'être exhaustif, les méthodes utilisées ne sont peut être pas toujours les bonnes, mais je suis à l'écoute de toutes autres maniéres de procéder !

 

Bonne programmation

 

Tof008

 Historique

20 juillet 2006 10:51:01 :
Orthographe, premier passage lol
21 juillet 2006 11:44:27 :
Mise en page

Commentaires

Commentaire de tof008 le 20/07/2006 11:19:26

N'hésitez pas à laisser votre commentaire, votre idée d'amélioration ou vos critiques! Et si vous avez d'autres solutions, je n'hésiterez pas à les rajouter!

Commentaire de Drikce06 le 20/07/2006 16:32:17

Salut tof008, moi j'ai rien à redire, c'est sur que ça peut servir aux débutants. Il n'y a que la mise en forme que j'aime pas trop! lol!. Je me posai une question parce que j'ai jamais mis de tuto mais, ça peut pas faire comme les codes sources où ça te met la mise forme automatiquement ? En tout cas pour les couleurs ?
Je te me 8, parce que c'est toi, mdr!

Commentaire de romagny13 le 27/07/2006 10:17:54

ouai c'est vrai c'est embetant,
la mise en forme est tout le temps completement modifiée et c'est assez compliquer de faire un truc a la fois complet et bien presenté

sinon bien cool ce petit tuto tof008

Commentaire de us_30 le 27/09/2006 22:06:38

Bonsoir TOF008,

JE te pardonne volontier sur la mise en forme, que je sais plus que galère ! Pourvu que cela s'améliore rapidement...

Mais que cela n'empêche pas d'abord te de présenter mes encouragements. Puis mes critiques et idées...

=

Donc, si j'épluche un peu les coquilles ou erreurs...

Dans " Range("A1).Select " > oubli du guillement de fermeture.

Avec : While Not Range("A" & i & "").Value = ""
ou dans tous les autres "Range" du tuto, tu rajoutes inutilement : & ""
En effet, ce dernier ne cause pas de bug, grâce au fait que tu rajoutes... rien, enfin plutôt une chaîne nulle...

Range("A" & i).Value, plus simplement fonctionne parfaitement et est même plus logique. En effet si i=1, alors tout se passe comme si on avait écrit Range("A1").Value

=

Ensuite, quelques remarques sur la méthode.

Dans les codes exemples que tu présentes, il faut faire attention aux références des objets. En effet, utiliser "Cells" est une bonne chose, mais "Cells" tout court, s'applique par défaut à la feuille active. Donc, attention aux catastrophes ! lorsqu'on manipule plusieurs feuilles ou que l'utilisateur peut utiliser plusieurs feuilles.

Pour un tuto (et ses macros), il faut mieux être un peu plus précis, et indiquer l'objet parent.

Par exemple voici une syntaxe plus sur :

Sub test()
Sheets("feuil1").Cells(3, 5).Value = 4
End Sub

permet de mettre la valeur 4 dans la case E3 de la "feuil1". En effet, pour atteindre E3 en partant de A1, il faut descendre 3 lignes, et de 5 colonnes.
Le premier avantage, c'est qu'on ne change pas la sélection courante. Le deuxième avantage, c'est qu'on n'a plus besoin d'utiliser la méthode Select, qui a le gros inconviénient d'être inconfortable pour l'utilisateur puisqu'on change de feuille, de colonne ou autre sous ses yeux (effet de flash), et d'être très longue en temps. En fait, Select ou Selection sont des méthodes ou propriétés, très utilisés par l'enregistreur de macro commande, pour refaire à l'identique les manipulations. Mais il faut une fois, les macro commandes effectuées, les reprendre en supprimant toutes les sélections pour optimiser le code.

Par exemple, pour récuperer une valeur sur une autre feuille (comme tu le proposes) peut se simplifier en rassemblant les objets, avec :

Range("B" & i).Value = Sheets("nb rebut").Range("C" & j).Value

Remarquons que pour arriver à cette ligne de code, on "joue" qu'avec la touche DEL.

Donc, on peut utiliser ce principes  sur presque tous les exemples de code. Par exemple :

Rows("2:3").RowHeight = 25

=

Enfin, pour les bordures, une petite optimisation rapide que je ne détaille pas, consisterait à coder :

For t = 7 To 12
    Range("B3:H" & i).Borders(t).Weight = xlMedium
Next t

parfaitement identique à ce que tu proposes...

Pour essayer ce code, il faut une valeur à "i"... or dans un tuto, c'est moyen...

A mon avis, tu devrais donner une référence précise. Par exemple :

For t = 7 To 12
    Range("B3:H4").Borders(t).Weight = xlMedium
Next t

=

Voilà. Comme tu t'es dis ouvert à la critique, tu as de quoi d'être comblé. Mais je ne doute pas, que tu seras améliorer tout cela... Je te souhait bon courage, et je t'encourage avec un petit 10/10...

Amicalement,
Us.

Commentaire de thibast le 14/10/2006 09:31:49

Bonjour,

Juste un petit merci pour ce tutoriel.
Mes compétences en VBA excel ce cantone juste à quelques modifications du scripte existant et ce genre de modéle me sera précieux pour enfin démarrer sur ma propre base.
Encore merci, je place cette page dans mes raccourcis.

Commentaire de ChemicalWoRmS le 05/11/2006 16:04:32

on voit bien que c'est pour les débutants lol :p

Commentaire de mirmoleboss le 22/11/2006 20:01:46

aaaaahhhh enfin une reponse  a comment ajouter des valeurs apres  la derniere case vide

Commentaire de bertrand1202 le 12/01/2007 20:20:43

bonjour

j ai cree un classeur avec une feuille facturation avec 10 colonnes , je voudrais recuperer ce tableau sur la seconde feuille appelee clients dus ( on recupere tout dans un premier temps puis ensuite on supprime les ligne solde a zero et sous totaux sur la deuxieme feuille .
j ai essaye avec nb=range ..., ca ne marche pas , merci de votre aide

Commentaire de bertrand1202 le 12/01/2007 20:20:47

bonjour

j ai cree un classeur avec une feuille facturation avec 10 colonnes , je voudrais recuperer ce tableau sur la seconde feuille appelee clients dus ( on recupere tout dans un premier temps puis ensuite on supprime les ligne solde a zero et sous totaux sur la deuxieme feuille .
j ai essaye avec nb=range ..., ca ne marche pas , merci de votre aide

Commentaire de bertrand1202 le 12/01/2007 20:20:48

bonjour

j ai cree un classeur avec une feuille facturation avec 10 colonnes , je voudrais recuperer ce tableau sur la seconde feuille appelee clients dus ( on recupere tout dans un premier temps puis ensuite on supprime les ligne solde a zero et sous totaux sur la deuxieme feuille .
j ai essaye avec nb=range ..., ca ne marche pas , merci de votre aide

Commentaire de bertrand1202 le 12/01/2007 20:20:49

bonjour

j ai cree un classeur avec une feuille facturation avec 10 colonnes , je voudrais recuperer ce tableau sur la seconde feuille appelee clients dus ( on recupere tout dans un premier temps puis ensuite on supprime les ligne solde a zero et sous totaux sur la deuxieme feuille .
j ai essaye avec nb=range ..., ca ne marche pas , merci de votre aide

Commentaire de lermite222 le 06/04/2007 06:13:36

Bonjour à tous,
Ces quelques parties de code peuvent certainement êtres trés utiles aux débutants, un bon truc quand même pour ajouter des fonctions en VBA. que se soit pour des print, des mises en formes etc.. , faire une macro de l'automatisation que l'ont veux faire
(Outil >> macro >> nouvelle macro , donner un nom >>OK) ensuite effectuer toutes les opérations souhaitées,quand c'est terminé
(outil >> macro >> terminer l'enrégistrement)
Dans la barre d'outil visual basic, cliquer sur le bouton visual basic editor, vous entrez alors dans l'éditeur de VBA, vous pouver retrouver votre macro dans un module et il est alors possible de l'optimiser, de l'indexer et bien plus encore et surtout de connaître la syntaxe exacte.
Voilà.. un petit truc que j'ai employé pendant des années.
Cordialement
lermite222


Commentaire de tanty le 06/06/2007 01:08:47

bonjour,
je suis très heureuse de tomber sur ce bout de tutoriel qui sera peut être ma source de salut puisque je débute une fois de plus merci.

Commentaire de Kornebrume le 04/10/2007 10:03:29

Bonjour à tous,

ce tutoriel est parfait mais j'aurai aimé savoir comment changer le format d'un cellule.

Le but : avoir le format d'un numéro de téléphone en 0680..... et non pas en 680....., en gros que le 0 ne se fasse pas virer.

Merci à vous.

Bonne journée, Korne

Commentaire de us_30 le 04/10/2007 12:53:23

Bonjour,

Tu as plusieurs solutions possibles. La première en utilisant la fonction "FORMAT" de VB tu peux faire un masque avec 10 zéros. Pour exemple :

Sub es()
a = Format("6812121212", String$(10, "0"))
Debug.Print a
End Sub

qui renvoit : 068121212

=

Autre solution, en utilisant le formatage d'Excel, soit :

Sub Macro1()
    Range("A1").Select
    Selection.NumberFormat = "0#"" ""##"" ""##"" ""##"" ""##"
End Sub

Qui renvoit dans la cellule A1 : 06 12 12 12 12 (alors que tu rentres 612121212)
Probablement la meilleur solution, mais il est à noter que si tu fais un tableau pré-établi, tu peux définir ce format directement dans Excel, avec Cellule>format>telepehonique, sans passer par le VBA. C'est de la mise en forme de cellule tout simplement.

Amicalement,
Us.

Commentaire de Kornebrume le 05/10/2007 16:33:09

OK merci, hier j'ai trouvé çà (VB2005) : xlSheet.Columns("B").NumberFormat = "@"

Cela formate la cellule (dans mon exemple) en format texte.

Quelqu'un aurait une liste des formats avec les paramètres à passer (à l'instar du format texte et de @).

Merci à vous.

Bonne journée et bon week-end :)

Cordialement, Korne

Commentaire de us_30 le 06/10/2007 11:22:12

Hum... je pense que tu devrais étudier un peu plus ce que l'on écrit. Puis poser ce type de question dans le forum. Car si ma première réponse peut être considérer comme un petit complément à ce tuto, t'expliquer en long et en travers les formatages de cellule finira par polluer ces posts.

Pour information, ce tuto est consacré au VBA. Utiliser VB2005 ou autre est donc un peu à côté. L'utilisation de "xlSheet.", n'est pas un objet de VBA, mais un objet créé dans VB2005 pour faire référence à un objet d'Excel, permettant ainsi de "piloter" Excel à partir de VB2005. Par conséquent, ta ligne est équivalente à : Selection.Columns("B").NumberFormat = "@" en VBA. Utiliser l'enregistreur de MACRO, pour générer ce type de code !

Amicalement,
Us.

Commentaire de ToNYDEVIL le 30/10/2007 10:50:06

beaucoup de chose utile, pour quelqu'un qui debarque dans le monde du VBA, comme moi ^^
meme si j'y trouve une precieuse aide, il va falloir chercher encore, continuer comme sa

Commentaire de mimine10 le 06/11/2007 09:33:23

Bonjour,

je ne suis pas experte non plus, mais pour débuter ce tuto est intéressant..
Au passage si quelqu'un sait comment modifier le séparateur d'un fichier excel à son ouverture, ça m'intéresse..
Merci d'avance

Commentaire de FreddyONE73 le 24/11/2007 14:44:28

Pour ceux qui cherche à se placer sur la dernière ligne ou colonne, j'ai une manière plus efficace et rapide:
Essayer de le faire avec les raccourcis clavier :
Cela consiste à se placer sur la dernière cellule posible de la FEUILLE (ligne 65536 ou colonne IV(256))
La combinaison [Ctrl] + [flêche haut] ou [Ctrl] + [flêche gauche]
permet de se déplacer directement à la prochaine cellule non vide.....
ce qui donne :

Dim LigneLibre As Integer, ColonneLibre As Integer
    Range("A65536").Select
    Selection.End(xlUp).Select
    LigneLibre = Selection.Row + 1
    Range("IV1").Select
    Selection.End(xlToLeft).Select
    ColonneLibre = Selection.Column + 1
    MsgBox "Prochaine ligne : " & LigneLibre & Chr$(13) & "Prochaine colonne : " & ColonneLibre

Commentaire de mirmoleboss le 24/11/2007 14:48:15

moi comme ca
Public Function DerniereLignePleine(Colonne As Integer) As Long

    DerniereLignePleine = Columns(Colonne).Find("*", Range("A1"), , , xlByRows, xlPrevious).Row

End Function

Commentaire de FreddyONE73 le 24/11/2007 14:53:48

Ce qui donne en plus propre (comme le suggère us_30) :

Dim LigneLibre As Integer, ColonneLibre As Integer
    LigneLibre = Range("A65536").End(xlUp).Row + 1
    ColonneLibre = Range("IV1").End(xlToLeft).Column + 1
    MsgBox "Prochaine ligne : " & LigneLibre & Chr$(13) & "Prochaine colonne : " & ColonneLibre

notez que la cellule qui était sélectionnée rest la même

Commentaire de FreddyONE73 le 24/11/2007 14:58:42

Oups, utiliser plutot le type Long pour les lignes :
Dim LigneLibre As Long

Désolé

(il n'y a pas un moyen de modifier nos commentaires ?

Commentaire de petitmoustique le 02/12/2007 11:28:24

Je te mets 9/10 car ce tuto est bien  mais il peut etre amélioré

Commentaire de dante20007 le 08/07/2008 10:31:02

bonjour,
comment fait on pour enregistrer avec une macro excel un email en tant que brouillon outlook?

Commentaire de beuzzz59 le 10/03/2009 10:20:58

Bonjour,
Je suis nouveau dans la programmation VB et j'aimerais selectionné la derniere ligne libre afin d'y coller une ligne existante.

Merci d'avance

Commentaire de lmaoui le 25/05/2009 17:58:10

j ss besoin de votre aides en vba j'ai une application et j n sé po comment la crée

Commentaire de MAGICIENMATT le 09/06/2009 08:56:13

Bonjour, j'ai une application ou je suis bloqué, Je doit envoyer dans une cellule de fauille excel une ligne de titre, pour ca c'est ok mais il faut que celle ci je la transforme en liens hypertexte si quelqu'un peut m'aider

Commentaire de 3ziwez le 15/07/2009 15:34:24

Bonjour le fil,
Super les petits morceaux de code surtout pour les débutants comme moi ;)))

j'aimerias bien profiter de cette précieuse source d'information pour m'améliorer sur tous ce qui est programmation vb.
au passage, j'ai deux boutons qui permettent de soit cacher soit faire apparaitre des colonnes selon le besoin de l'utilsateur, mais je souhaite que lorsque qlq 1 clique sur un bouton il change de couleur alors que l'autre reste inchangé, et lorsqu'on clique sur l'autre bouton il change de couleur a son tour et l'autre reviens a sa couleur d'origine.

Si vous me trouvez le code adéquat je serais trés reconnaissant

Merci d'avance

Azel

Merci d'avance

Commentaire de Getdaone le 20/01/2010 17:27:30

Je cherchais à faire la conversion d'une adresse de colonne exprimée en lettres vers une adresse exprimée en numérique. Je ne sais pas s'il y a plus simple mais ça a le mérite de fonctionner !!!

Private Function Convert_ColumnLetters_To_ColumnIndex(ByVal sColumnLetters As String) As Integer
    Dim iColumnIndex, indCurLettre, iCurLettreCode As Integer
    
    iColumnIndex = 0
    iCurLettreCodeVal = 0
    
    sColumnLetters = Format(sColumnLetters, ">")
    If Len(sColumnLetters) > 2 Then
        MsgBox "La colonne de fin doit être inférieure à IV", vbExclamation, "Erreur de paramètres !"
        Convert_ColumnLetters_To_ColumnIndex = -1
        Exit Function
    End If
    
    For indCurLettre = 1 To Len(sColumnLetters)
        iCurLettreCodeVal = Asc(Mid(sColumnLetters, indCurLettre, 1))
        
        ' L'adresse de la cellule est sur deux caractère
        If Len(sColumnLetters) > 1 Then
            
            ' On limite la cellule de fin à IV
            If Len(sColumnLetters) = 2 And _
                    indCurLettre = 1 And _
                    iCurLettreCodeVal > Asc("I") Then
                
                MsgBox "La colonne de fin doit être inférieure à IV", vbExclamation, "Erreur de paramètres !"
                Convert_ColumnLetters_To_ColumnIndex = -1
                Exit Function
            ElseIf Len(sColumnLetters) = 2 And _
                        indCurLettre = 2 And _
                        iColumnIndex >= (Asc("I") - Asc("A") + 1) And _
                        iCurLettreCodeVal > Asc("V") Then
                    
                    MsgBox "La colonne de fin doit être inférieure à IV", vbExclamation, "Erreur de paramètres !"
                    Convert_ColumnLetters_To_ColumnIndex = -1
                    Exit Function
            End If
            
            iColumnIndex = 26 * iColumnIndex + (iCurLettreCodeVal - (Asc("A") - 1))
        
        ' L'adresse de la cellule est sur un caractère
        Else
            iColumnIndex = iCurLettreCode - (Asc("A") - 1)
        End If
        
        ' La lettre en cours de traitement doit être située entre 'A' et 'Z', les autres caractères ne sont pas autorisés en adresse de cellule
        If iCurLettreCode < Asc("A") Or _
                iCurLettreCodeVal > Asc("Z") Then
            
            MsgBox "La colonne de fin doit être exprimée en lettres", vbExclamation, "Erreur de paramètres !"
            Convert_ColumnLetters_To_ColumnIndex = -1
            Exit Function
        End If
    Next indCurLettre
    
    Convert_ColumnLetters_To_ColumnIndex = iColumnIndex
End Function

Commentaire de bgsbnny710 le 19/03/2010 14:55:17

merci ça aide bien :)

Commentaire de philguejr le 01/12/2010 10:06:00

Bonjour à tous,
J'ai un problème de débutant et je bute dessus depuis plusieurs jours.
J'ai un classeur avec 2 feuilles la première sous forme de formulaire et  la seconde sous forme de tableau qui reprend les données saisies sur le formulaire (la première feuille donc).
Je voudrai sous la forme d'une macro vérifier que les données saisies dans le formulaire (feuille1) n'existent pas déjà dans le tableau (feuille2).
Pourriez-vous s'il vous plaît me guider, je ne trouverai pas la solution tout seul.
D'avance merci.

Commentaire de DjouTheMaD le 13/05/2011 02:23:39

Bonjour,

J'ai également un petit problème donc si jamais qqn peux m'aider l'aide sera la bienvenue ...

Je dois faire une application VBA à partir d'Excel sur une entreprise. J'ai créé des boutons su rle fichier Excel qui renvoie à des userforms sur les employés, les ventes, etc ...
Mon problème est le suivant : pour les achats (par ex) il y a une case dans laquelle il faut donner le prix de l'achat. Cette case peut être utilisée pour créer un nouvel achat, en modifié un, etc ...
Ce que je voulais faire c'est que, dès que je rentre un nombre le symbole euro s'affiche. J'ai donc essayé pas mal de truc et ça fonctionne mais le soucis c'est que je ne sais pas modifier les virgules ! J'aimerai pouvoir enregistré un nombre avec deux nombre après la virgule mais je n'y arrive pas ...

Voici le code que j'ai essayé (en dernier lieu)

Private Sub TB_PAchat_Change()

    If TB_PAchat = "" Then
        TB_PAchat = ""
    ElseIf Not IsNumeric(TB_PAchat) Then
        MsgBox ("Veuillez introduire un prix."), vbExclamation
        TB_PAchat = ""
    End If
    If IsNumeric(TB_PAchat) Then
        i = TB_PAchat
        TB_PAchat = FormatCurrency(TB_PAchat, 2)
    End If      
End Sub

PS : la première partie c'est simplement que je veux qu'un msgbox s'affiche si je n'entre pas un nombre.

Merci d'avance et bonne soirée

Commentaire de lexsty le 21/10/2011 14:14:20

Merci
Je voulais justement me servir de VBA et ce totorial va m'aider.                  (10/10)

Commentaire de lexsty le 21/10/2011 19:33:37

Tutorial bien sûr  
Désolé.

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,109 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales