Copier coller sous condition

Salut à tous,

J’aurais besoin de vos lumières. Je suis débutante en VBA donc n’hésitez pas me dire si je ne suis pas claire…

En gros je voudrais copier les chiffres dans la colonne MIC (onglet Analysis) de chaque antibio (AB) et composé (C1 à C11) dans la colonne MIC du tableau summary. Sachant que le nombre d’antibio peut varier de 1 à 5 et le nombre de composés de 1 à 20 j’ai besoin d’inclure une variable qui teste si le nom dans la colonne « compound ID » (onglet summary) est égal aux noms dans la feuille Analysis. (Je joins un fichier exemple)

Voilà le code que j’ai développé

Sub Recap_MIC()

Set Analyse = Sheets("Analysis")

Set Recap = Sheets("Summary")

nbLignesAnalyse = Analyse.Cells(Rows.Count, 1).End(xlUp).Row

With Sheets("Summary")

decal = 4

For lig = 8 To nbLignesAnalyse Step 108

plate = lig + 1

For x = 7 To x = 31 Step 1

If .Cells(x, decal - 2) = Analyse.Cells(plate, 21) Then 'tester si compound Analyse = Compound Summary

.Cells(x, decal + 1).Value = Analyse.Cells(plate, 34).Value

Else: MsgBox "Problème compound"

End If

Next x

plate = plate + 3

Next lig

décal = décal + 2

End With

End Sub

Lorsque je le lance, il ne se met pas en erreur mais ne copie rien non plus… Un conseil ?

Merci

Marie

PS : de base je voulais copier directement la dernière concentration (lignes indiquées sur la première plaque) pour laquelle les 2 ligne du dessous étaient colorées dans le tableau summary. J’avais développé un code similaire avec cette condition mais j’ai eu le même problème…

11test-macro.xlsm (56.59 Ko)

Bonjour mariejojo

essaie comme cela ???

Sub Recap_MIC()

Set Analyse = Sheets("Analysis")
Set Recap = Sheets("Summary")
nbLignesAnalyse = Analyse.Cells(Rows.Count, 1).End(xlUp).Row

With Sheets("Summary")
décal = 4
For lig = 8 To nbLignesAnalyse Step 108
    plate = lig + 1
    For x = 7 To 31 Step 1
        If .Cells(x, 2) = Analyse.Cells(plate, 3) Then 'tester si compound Analyse = Compound Summary
            .Cells(x, décal + 1).Value = Analyse.Cells(plate, 16).Value
            plate = plate + 3
        Else
            plate = plate + 6

        End If

    Next x
    décal = décal + 2
Next lig

End With

End Sub

Bon courage

Hello,

Merci Ca copie pas toutes les valeurs mais c'est déjà bien mieux. Je vais le retravailler

Merci encore

Bonjour mariejojo, bonjour le forum

J'ai fait ce que j'ai pu en fonction de ma compréhension de la chose...car ce n'est pas mon domaine

Si cela peut t'aider à voir plus clair, tant mieux

Bonne journée

Rechercher des sujets similaires à "copier coller condition"