Créer une macro avec condition

Résolu/Fermé
asmascetti Messages postés 4 Date d'inscription lundi 12 novembre 2012 Statut Membre Dernière intervention 13 novembre 2012 - 12 nov. 2012 à 12:00
asmascetti Messages postés 4 Date d'inscription lundi 12 novembre 2012 Statut Membre Dernière intervention 13 novembre 2012 - 13 nov. 2012 à 09:27
Bonjour,

je n'arrive pas à créer ma macro
débutante dans ce domaine
je cherche à déplacer les lignes complètes dont les tâches ont été effectué dans le tableau "tâches à effectuer"
on selection la ligne et en cliquant sur un bouton active exemple "ok" la ligne se déplace automatiquement dans le tableau "tâches effectuées"



EXEMPLES SIMPLES


tâches à effectuer
xxxxxxxxx 12/11/2012
bbbbbbbbbbbb 06/12/2012
aaaaaaaaaaaa 04/01/2013



tâches effectuées
ooooooooooo 06/10/2012
tttttttttttttttt 04/06/2012


Merci de votre aide


A voir également:

4 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
12 nov. 2012 à 12:11
Bonjour

Tes 2 tableaux sont ils sur la même feuille ?

quelle sont les colonnes utilisées par tes tableaux ?

au besoin
mettre le classeur sans données confidentielles en pièce jointe sur
https://www.cjoint.com/
puis copier l'adresse du lien et la coller dans le message de réponse
0
asmascetti Messages postés 4 Date d'inscription lundi 12 novembre 2012 Statut Membre Dernière intervention 13 novembre 2012
12 nov. 2012 à 13:49
la boite me refuse l'acces à https://www.cjoint.com/
désolé je ne peux vous joindre mon dossier

5 colonnes : A - B - C - D - E

A (numéro des taches)
B (désignation)
C (importance)
D (date a effectuer)
E nom du technicien

18 lignes qui concernent les taches à effectuées

et 6 lignes qui concernent les taches déjà éffectuées

soit à ta question
" Tes 2 tableaux sont ils sur la même feuille ? " = OUI

j'espere vous avoir aidé dans ma réponse

en vous remerciant d'avance de votre aide
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié par michel_m le 12/11/2012 à 14:45
Re, comme ta boutique refuse l'accès à cjoint , je ne peux pas t'envoyer ma maquette ! :o(

Donc:

1 a macro ci dessous vérifie que la ligne sélectionnée est bien dans le tableau "à effectuer"
2 elle mémorise les colonnes A à E de la ligne et supprime la ligne
3 les données sont inscrites à la fin du tableau "effectué"

Sub transférer_w_effectué() 

lig_w = ActiveCell.Row 
derlig = Columns("A").Find("", Range("A2")).Row - 1 
'détecion ligne en dehors du tableau "à réaliser" 
If derlig < lig_w Then GoTo erreur 
'mémorise la ligne à transfèrer 
w_fini = Range(Cells(lig_w, "A"), Cells(lig_w, "E")).Value 
' supprime cette ligne ligne 
Rows(lig_w).Delete 

ligvid = Columns("A").Find("*", , , , , xlPrevious).Row + 1 
Range("A" & ligvid).Resize(1, 5) = w_fini 
Exit Sub 

erreur: 
MsgBox "mauvaise sélection de ligne", vbCritical 


End Sub


edit 14:45 simplifié la macro
Michel
0
asmascetti Messages postés 4 Date d'inscription lundi 12 novembre 2012 Statut Membre Dernière intervention 13 novembre 2012
12 nov. 2012 à 14:50
je sais que cela n'est pas la procédure mais avez vous un mail auquel je peux vous envoyer le dossier
la macro ne marche pas
en attente de vous lire
merci
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
12 nov. 2012 à 15:21
j'ai fait une maquette et ca fonctionnait suivant les spécifications que tu m'as donné

la maquette (à regarder peut-^tre à la maison)
https://www.cjoint.com/?3Kmpuk17dKE

ou por transmettre le dossier utilises la possibilité de message perso de CCM
0
asmascetti Messages postés 4 Date d'inscription lundi 12 novembre 2012 Statut Membre Dernière intervention 13 novembre 2012
13 nov. 2012 à 09:27
merci michel_m et ccm81 tout marche chez moi mais au travail c'est une grande histoire
il me bloque l'accès et je ne peux l'utiliser correctement
merci encore de votre aide
0
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 425
12 nov. 2012 à 15:21
bonjour

Une proposition un peu différente de celle de michel (salut à toi)
Le tableau 1 des taches à effectuer reste "entier" ici en A3:E19, ce qui te permet de rajouter des tâches (à effectuer)

- à mettre dans le module de la feuille active
- la macro est à activer par un double clic sur une cellule de la ligne à transférer

Option Explicit

Const T1 = "A3:E19"
Const lideb1 = 3
Const lifin1 = 19

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim li1 As Long, plage1 As String
Dim lifin2 As Long
If Target.Value = "" Or Intersect(Target, Range(T1)) Is Nothing Then Exit Sub
' ligne à deplacer
li1 = Target.Row
plage1 = "A" & li1 & ":E" & li1
' 1° ligne vide tableau T2
lifin2 = Cells.Find("*", , , , xlByRows, xlPrevious).Row + 1
' copie li1 sur lifin2
Range(plage1).Copy Cells(lifin2, 1)
' remonter les lignes de T1
If li1 = lifin1 Then
  plage1 = "A" & li1 & ":E" & li1
  Range(plage1).ClearContents
Else
  For li1 = li1 + 1 To lifin1
    plage1 = "A" & li1 & ":E" & li1
    Range(plage1).Copy Cells(li1 - 1, 1)
    Range(plage1).ClearContents
  Next li1
End If
End Sub

bonne suite
0