IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

doublons des nombres d'une plage


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1
    Par défaut doublons des nombres d'une plage
    Bonjour,

    Comment faire pour calculer le nombre de redondances d'un chiffre donné dans une plage de cellules et de prendre le résultat pour le coller dans un autre classeur correspondant à la case du chiffre.
    si j'étais pas clair ci-joint le lien pour deux classeurs types.

    http://www.4shared.com/rar/TPeHdrFZ/...urs_1et_2.html

    j'ai essayé de faire un code tout seul mais ça marche pas, je sais pas pourquoi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    Sub OfficeToTool()
     
    Dim x As Byte, c As Variant
    For c = 15 To 23
    Workbooks("book1").Worksheets("sheet1").Activate
    Set recherch = Workbooks("book1").Worksheets("Sheet1").Cells(c, 2)
    x = Application.CountIf(Range("B15:B23"), recherch.Value)
    DSGtoolOpen
    If recherch.Value = 5 Then
    'Workbooks("book2").Worksheets("sheet1")
     ActiveWorkbook.Worksheets("sheet1").Range("C15").Value = x
    ElseIf recherch.Value = 7 Then
     ActiveWorkbook.Worksheets("sheet1").Range("C16").Value = x
    ElseIf recherch.Value = 10 Then
    ActiveWorkbook.Worksheets("sheet1").Range("C17").Value = x
    ElseIf recherch.Value = 15 Then
    ActiveWorkbook.Worksheets("sheet1").Range("C18").Value = x
    ElseIf recherch.Value = 20 Then
    ActiveWorkbook.Worksheets("sheet1").Range("C19").Value = x
    ElseIf recherch.Value = 25 Then
    ActiveWorkbook.Worksheets("sheet1").Range("C20").Value = x
    ElseIf recherch.Value = 30 Then
    ActiveWorkbook.Worksheets("sheet1").Range("C21").Value = x
    ElseIf recherch.Value = 3 Then
    ActiveWorkbook.Worksheets("sheet1").Range("C14").Value = x
    End If
    Next c
     
    toolToVNS
     
    End Sub
     
     
    Sub toolOpen()
       On Error Resume Next
           Workbooks("book2").Activate
     
       If Err <> 0 Then
           Workbooks.Open ("C:\users\entreprise\desktop\book2")
     
       End If
     
    End Sub
     
    Sub toolToVNS()
     
    Workbooks("book2").Worksheets("sheet1").Range("B32").Select
    Selection.Copy
    ThisWorkbook.Sheets("sheet1").Activate
    Workbooks("book1").Worksheets("sheet1").Range("C34").Select
    Selection.PasteSpecial Paste:=xlPasteValues
     
    End Sub
    Pourriez vous m'indiquer une autre solution ou me corriger le code ?

    Merci d'avance pour vos réponses.

  2. #2
    Membre Expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 475
    Par défaut
    Bonjour,

    Je n'ai pas vu ton fichier mais voici un code qui te permets de chercher le nombre de fois que la variable X apparaît dans la plage a1:d15

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    x = 4
    y = Application.WorksheetFunction.CountIf(Range("a1:d15"), x)
    MsgBox y
    Pour la gestion des doublons une très bonne adresse

    http://silkyroad.developpez.com/excel/doublons/

  3. #3
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonjour,

    Tu peux essayer comme cela (je n'ai pas ouvert tes classeurs).
    Corrige les extensions fichiers si nécessaire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    Sub OfficeToTool()
    Dim Recherch As Range
    Dim x As Byte, C As Byte
    Dim Ws1 As Workbook, Ws2 As Workbook
        toolOpen
        Set Ws1 = Workbooks("book1.xls")
        Set Ws2 = Workbooks("book2.xls")
        For C = 15 To 23
            With Ws1.Worksheets("sheet1")
                Set Recherch = .Cells(C, 2)
                x = Application.CountIf(.Range("B15:B23"), Recherch.Value)
            End With
            With Ws2.Worksheets("sheet1")
                If Recherch.Value = 3 Then
                    .Range("C14").Value = x
                ElseIf Recherch.Value = 5 Then
                    .Range("C15").Value = x
                ElseIf Recherch.Value = 7 Then
                    .Range("C16").Value = x
                ElseIf Recherch.Value = 10 Then
                    .Range("C17").Value = x
                ElseIf Recherch.Value = 15 Then
                    .Range("C18").Value = x
                ElseIf Recherch.Value = 20 Then
                    .Range("C19").Value = x
                ElseIf Recherch.Value = 25 Then
                    .Range("C20").Value = x
                ElseIf Recherch.Value = 30 Then
                    .Range("C21").Value = x
                End If
            End With
        Next C
        Ws2.Worksheets("sheet1").Range("B32").Copy
        Ws1.Worksheets("sheet1").Range("C34").PasteSpecial Paste:=xlPasteValues
        Application.CutCopyMode = False
        Set Recherch = Nothing
        Set Ws1 = Nothing
        Set Ws2 = Nothing
    End Sub
    Sub toolOpen()
        On Error Resume Next
        Workbooks("book2.xls").Activate
        If Err <> 0 Then
            Workbooks.Open ("C:\users\entreprise\desktop\book2.xls")
            On Error GoTo 0
        End If
    End Sub
    Cordialement.

Discussions similaires

  1. Supprimer des lignes contenants une plage de doublons
    Par mustangrr dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/12/2012, 09h09
  2. Affichage des données d'une plage de cellules
    Par sat478 dans le forum Excel
    Réponses: 3
    Dernier message: 02/05/2008, 17h49
  3. changer des nombres dans une chaine
    Par newbiegeek dans le forum ASP
    Réponses: 11
    Dernier message: 09/08/2007, 15h24
  4. [MySQL] extraire des nombre d'une chaine de caractères et addition
    Par Yotho dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 04/03/2006, 16h54
  5. [LG]Extraire des nombres d'une chaine
    Par audreym31 dans le forum Langage
    Réponses: 4
    Dernier message: 18/01/2004, 21h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo