Aide VB/VBA

Signaler
Messages postés
131
Date d'inscription
mardi 11 mai 2004
Statut
Membre
Dernière intervention
21 juillet 2005
-
Messages postés
468
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
30 août 2007
-
voila je debute completement dans la programation et surtout en VB.
je suis deja venu poser quelque question sur ce forum et g u de l'aide, donc je recommence en esperent une reponse.

donc voila je me lance :
une charmante personne ma enormement aide pour ce code (marci FANNY) :

Dim trouve As Boolean

Sub triDoublon()

Application.ScreenUpdating = False

Worksheets("TriSuppressionDoublon").Range("B7").Sort _
key1:=Worksheets("TriSuppressionDoublon").Range("B8"), _
Order1:=xlAscending, Header:=xlGuess

Set MaCell = Worksheets("TriSuppressionDoublon").Range("B7")

Do While Not IsEmpty(MaCell)
Set MaCellSuite = MaCell.Offset(1, 0)
If MaCellSuite.Value = MaCell.Value Then
MaCell.EntireRow.Delete
End If
Set MaCell = MaCellSuite

Loop

Sheets("TriSuppressionDoublon").Select
Range("B7:B65536").Select
Selection.Copy
Sheets("Workstations with SMS Installed").Select
Range("F7:F65536").Select
ActiveSheet.Paste

trouve = False

Set cellule1 = Worksheets("Workstations with SMS Installed").Range("A7")

Set cellule2 = Worksheets("Workstations with SMS Installed").Range("D7")

Set cellule3 = Worksheets("Workstations with SMS Installed").Range("F7")

 

'on boucle sur la colonne A, jusqu'à la première cellule vide :

While Not IsEmpty(cellule1)

'on teste l'égalité des 3 cellules

'si elles sont égales, alors on va rechercher la date correspondante dans l'autre feuille
If (cellule1.Value cellule2.Value) And (cellule2.Value cellule3.Value) Then

            Set celluleRecherche = Worksheets("TriSuppressionDoublon").Range("B7")

            While Not IsEmpty(celluleRecherche) And trouve = False

                  If celluleRecherche.Value = cellule1.Value Then

                        trouve = True

                        cellule1.Offset(0, 2).Value = celluleRecherche.Offset(0, -1).Value

                  End If

                  Set celluleRecherche = celluleRecherche.Offset(1, 0)

            Wend

    'sinon, on descend les cellules de F d'une ligne

    Else

    

    'on recherche la plage de données à copier

    i = 0

    While Not IsEmpty(cellule3.Offset(i, 0))

        i = i + 1

    Wend

    Range("F" & cellule3.Row & ":F" & cellule3.Offset(i - 1, 0).Row).Select

    Selection.Copy

    cellule3.Offset(1, 0).Select

    ActiveSheet.Paste

    cellule3.Value = ""

End If

 

Set cellule1 = cellule1.Offset(1, 0)

Set cellule2 = cellule2.Offset(1, 0)

Set cellule3 = cellule3.Offset(1, 0)

Wend

Application.ScreenUpdating = True

End Sub



je pense que vous l'aurai compris c du VBA excel et je voudrai cree un exe en VB donc.
mais je ne c pas quelle sont les ligne a changer pour le passer en VB notament sur les apelle de fonction, pour l'ouverture de excel je vien de trouver une source qu'il fo que je regarde donc vous pouvez m'aide ou me dir si vous n'y comprenait rien a ce que je vous dit (c fort possible car je n'est pas le vocabulaire VB....)
voila merci d'avance et encore merci FANNY =)

1 réponse

Messages postés
468
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
30 août 2007
2
alors
dans la théorie
il fauta joute la reference Microsoft Excel ds vb

en vb ca fais

dim ex as new excel.application
ex.workbooks.Add
ex.visible=false

'a partir de la toute les expression spécifik a excel (cells(),sheets,etc) seron précédé de 'ex' exemple:

EX.Worksheets("TriSuppressionDoublon").Range("B7").Sort _
key1:=Worksheets("TriSuppressionDoublon").Range("B8"), _
Order1:=xlAscending, Header:=xlGuess

'voila, ensuite a la fin du traitement tu fais:
ex.Visible=True
set ex=nothing

voila kom je te dis c de la théorie, tu verra peut etre une ou 2 exception

@+
juva

Retrouvez une équipe de développeurs confirmés sur le tchate:
serveur : bastia.zefunChat.net
port : 6667
chan : #programmation