Macro lancée à chaque ligne selon valeur d'une cellule

Pour préciser les colonnes que je veux qu'il copie je suppose qu'il faut que je modifie ce bout de code :

[For colCpt = colDeb To colFin]

Mais je nais pas comment écrire le code pour lui dire colonne 1,2,8,9,10,11

Merci beaucoup pour ton aide précieuse !

(re)

Vu pour les colonnes 1,2,8,9,10,11

par contre :

d'après ton fichier exemple en colonne 5 il y a une formule donc je la recopie en tant que formule

hors dans ta "sélection de colonnes 1,2,8,9,10,11" la colonne 5 ne figure pas !

d'autre part je n'ai par sur ton fichier exemple de colonne 8 à 11 !

Oui car mon fichier est bien plus grand et que je ne voulais pas mettre un fichier exemple trop lourd, effectivement ducoup je n'ai pas besoin de copier ma colonne 15 dans histo.

(re)

Marlene4242 a écrit :

ducoup je n'ai pas besoin de copier ma colonne 15 dans histo.

par ce la colonne 5 est en fait la colonne 15 je présume !

Bref...

à la place du "code" en bleu tu mets celui en rouge :

For colCpt = colDeb To colFin

If colCpt = 5 Then

Worksheets("HISTO").Cells(ligLogDeb, colCpt) = Worksheets("ORIG").Cells(ligCpt, colCpt).Formula

Else

Worksheets("HISTO").Cells(ligLogDeb, colCpt) = Worksheets("ORIG").Cells(ligCpt, colCpt)

End If

Next

Select Case colCpt

Case 1, 2, 8, 9, 10, 11 ' ici toutes les colonnes à copier et SEULEMENT celles là !

Worksheets("HISTO").Cells(ligLogDeb, colCpt) = Worksheets("ORIG").Cells(ligCpt, colCpt)

End Select

Re bonjour,

Comme ce matin, dès que la deuxième ligne de la feuille histo est remplie la macro ne fonctionne plus.

De plus, les données sont collées en colonne 1,2,8,9,10,11 de la feuille "histo" au lieu de se mettre à la suite.

Marlène4242

Voici le code :

Sub Valider()

Dim ligDeb, ligFin As Long

Dim colDeb, colFin As Long

Dim ligCpt, colCpt As Long

Dim ligLogDeb, ligLogFin As Long

Dim colLogDeb, colLogFin As Long

Worksheets("Suivi Collaborateurs NE").Select

ligDeb = 3 ' Debut du tableau en ligne 3

colDeb = 1 ' -- -- -- -- colonne 1

colFin = 20

Cells(ligDeb, colDeb).Select ' Se positionner au debut

Selection.End(xlDown).Select ' Aller a la fin

ligFin = Selection.Row ' Retenir la ligne de fin

Worksheets("Histo").Select

ligLogDeb = 2

colLogDeb = 1

Cells(ligLogDeb, colLogDeb).Select ' Se positionner au debut

If Not (Cells(ligLogDeb, colLogDeb)) = "" Then ' Le fichier LOG est il vide ?

Selection.End(xlDown).Select ' NON => Aller a la fin

ligLogFin = Selection.Row ' Retenir la ligne de fin

ligLogDeb = ligLogFin + 1

End If ' Fin du Si

Worksheets("Suivi Collaborateurs NE").Select ' Revenir au fichier ORIGINE

Application.EnableEvents = False ' Pour eviter les procedures evenementielles qui viendraient perturber le traitement en cours

Application.ScreenUpdating = False ' Pour aller plus vite en evitant d'afficher les modifs en cours

For ligCpt = ligDeb To ligFin ' De la 1ere ligne du tableau jusqua la Derniere

If UCase(Cells(ligCpt, 20)) = "OUI" Then ' SI VALIDATION = OUI ALORS traiter...

' Copier dans LOG

For colCpt = colDeb To colFin

Select Case colCpt

Case 1, 2, 8, 9, 10, 11 ' ici toutes les colonnes à copier et SEULEMENT celles là !

Worksheets("Histo").Cells(ligLogDeb, colCpt) = Worksheets("Suivi Collaborateurs NE").Cells(ligCpt, colCpt)

End Select

Next

Worksheets("Histo").Cells(ligLogDeb, colCpt) = Worksheets("Suivi Collaborateurs NE").Cells(ligCpt, colCpt)

ligLogDeb = ligLogDeb + 1

Worksheets("Suivi Collaborateurs NE").Select

Cells(ligCpt, 10) = Cells(ligCpt, 12).Value ' J = L (NE ACTUEL deveint NE VISE) ** avec value pour ne copier que la valeur et non la formule

Cells(ligCpt, 11) = Cells(ligCpt, 18) ' K = R (DATE DER EVAL = DATE EVAL)

Cells(ligCpt, 18) = "" ' R = "" (DATE EVAL effacee)

Cells(ligCpt, 20) = "" ' T = "" (VALIDATION = "")

End If ' FIN du SI

Next ' Ligne Suivante

Application.EnableEvents = True ' Remettre en place le traitement des procedures evenementielles

Application.ScreenUpdating = True ' Remettre en place l'affichage de l'ecran

End Sub

(re)

Désolé je ne comprends pas !

Envoi moi le fichier "original" celui sur lequel tu travailles (sur lequel surtout tu fais les modifs de code / efface les noms/prénoms au besoin)

tant pis pour la taille !

Bonjour,

Voici le fichier, j'ai supprimé la partie histo du code car cela plantait,

Merci à toi !

Rechercher des sujets similaires à "macro lancee chaque ligne valeur"