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 :

Code VBA: Comparer et copier des valeurs de cellules


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 35
    Par défaut Code VBA: Comparer et copier des valeurs de cellules
    Bonjour à tous,
    Je veux comparer le contenu de deux cellules (i,k) et (j,l) dans deux feuilles du même workbook si c'est éqale alors copier la valeur de la cellule (t,k) dans (r,l). Voici le code que j'ai écris.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    l=26
    j=50
    For k = 10 To 17
            ILname = Sheets("feuil1").Cells(l, k).Value
            ConIl = Worksheets("feuil1").Cells(j, k).Value
                For i = 11 To 40
                    EspIlcont = Worksheets("Espèces").Cells(5, i)
                    If Sheets("feuil1").Cells(l, k) = Sheets("Espèces").Cells(1, i) Then
                       EspIlcont = ConIl
                     End If
                     Worksheets("Espèces").Cells(5, i) = EspIlcont
                Next i
            Next k
    Quand je fais tourner le code, il compare mais ne copie pas la valeur demandée. Comment faire?
    Merci pour vos reponses.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    556
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 556
    Par défaut
    Bonjour,
    Dans ton code, j'ai juste rajouter une msgbox pour que tu puisses vérifier si tes variables contiennetn bien ce que tu veux qu'elles contiennent
    J'ai aussi rajouter des .Value qui manquaient

    Essaie comme çà et vois ce que çà donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    l=26
    j=50
    For k = 10 To 17
            ILname = Sheets("feuil1").Cells(l, k).Value
            ConIl = Worksheets("feuil1").Cells(j, k).Value
                For i = 11 To 40
                    EspIlcont = Worksheets("Espèces").Cells(5, i).Value
                    msgbox EspIlCont
                    If Sheets("feuil1").Cells(l, k).Value = Sheets("Espèces").Cells(1, i).Value Then EspIlcont = ConIl
                    msgbox EspIlCont
                     Worksheets("Espèces").Cells(5, i).Value = EspIlcont
                Next i
            Next k

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 35
    Par défaut
    Merci helios77,

    J'ai essayé mais pas trop de succès. Il ne copie que la dernière valeur.

    Je joint un modèle et le code complet. Il s'agit d'un iceberg d'un gros projet. Votre aide sera beaucoup apprécier. Sa deux jours que cherche la faille de ce code.

    J'ai mis les msgbox pour contrôler le déroulement du code.


    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
     
     
    Public Sub copie_resultats()
     
        Dim Nlogkf As Long, Npka As Long, Npksp As Long, Npoint As Long, Npkw As Integer
        Dim Searchtext As Range
        Dim Maslect1 As Range
        Dim Maslect2 As Range
        Dim Maslect3 As Range
        Dim Ncomp As Long
        Dim ConIl As Double, EspIlcont As Double
        Dim l As Integer, c As Integer, i As Integer
        Dim ILname As Variant
        Nlogkf = 0
        Npka = 0
        Npksp = 0
        Npkw = 1
     
        For i = 441 To 2 Step -1
            If Sheets("feuil1").Cells(i, 1).Value = "Log Kf" Then
                Nlogkf = Nlogkf + 1
            Else
                If Sheets("feuil1").Cells(i, 1).Value = "pKa" Then
                    Npka = Npka + 1
                Else
                    If Sheets("feuil1").Cells(i, 1).Value = "pKsp" Then
                        Npksp = Npksp + 1
                    End If
                End If
            End If
        Next i
     
        'Nombre de composés entrée
            For i = 3 To 70
                If Sheets("feuil1").Cells(1, i) <> "" Then
                 Ncomp = Ncomp + 1
                End If
            Next i
     
     
        Npoint = Nlogkf + Npka + Npksp + Npkw
     
        'ligne de depart pour les resultats
            l = Npoint + 5
        'colonne de dpart pour les resultat
            c = 8
     
        'ligne de lecture des resultats
     
            j = l + 51
            r = Ncomp + 4
           i = 11
        For k = Ncomp + Ncomp + 3 To Ncomp + 4 Step -1
     
           ILname = Sheets("feuil1").Cells(l, k).Value
          ConIl = Worksheets("feuil1").Cells(j, k).Value
               For i = 11 To 40
                    If ILname = Sheets("Espèces").Cells(1, i) Then
                    Worksheets("Espèces").Cells(5, i).Value = Sheets("feuil1").Cells(j, k).Value
     
                    End If
                    MsgBox Sheets("feuil1").Cells(l, k).Value & " = " & Sheets("Espèces").Cells(1, i).Value
                    MsgBox Sheets("Espèces").Cells(5, i).Value & " = " & Sheets("feuil1").Cells(l + 51, k).Value
     
                Next i
     
            Next k
     
    End Sub

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    556
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 556
    Par défaut
    Bonjour,
    COmme çà, je nepeux pas tester grand chose
    mais n'aurais-tu pas inversé les colonnes et les lignes par hasard ..
    Quand tu écris tuparles de la ligne 5 et de la colonne i

    Ne serait-ce pas l'inverse que tu chercherais à faire ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 35
    Par défaut
    Oui c'est bien la ligne 5 et la colonne i

    je joins le fichier exemple pour que tu puisse tester.
    Fichiers attachés Fichiers attachés

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    556
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 556
    Par défaut
    Ton problème est tout bête

    Entre ta feuille1 et ta feuille Espèce, tu n'as pas tout à fait les même noms
    Ex : H+ dans feuill1 et !H+ dans Especes
    Cl- dans feuil1 et Cl-(+ espace) dans Espèces
    (CO3)-2 dans feuilk1 et CO3-2 dans Espèces

    Vérifie bien que tes noms de molécules soient bien les bons et çà devrait fonctionner ton truc

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 06/12/2013, 11h28
  2. Réponses: 15
    Dernier message: 30/09/2008, 23h36
  3. Comparer puis compter des valeurs
    Par chduq dans le forum Langage SQL
    Réponses: 1
    Dernier message: 19/10/2007, 09h13
  4. [VBA-E] Comment copier des dates du contrôle calendar dans une boite de texte
    Par jeanpierreco dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/02/2007, 07h18
  5. copier des valeur excel
    Par fildupa dans le forum Excel
    Réponses: 2
    Dernier message: 03/02/2007, 13h55

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