VBACopier une cellule dans une colonne selon la fin du texte

Bonjour à tous,

j'aimerai trouver une macro pour le problème suivant

J'ai la différence de deux colonnes dans la colonne C de la feuille 1.

Si une cellule de la colonne B fini par 2013, j'aimerai qu'il me copie sa cellule de droite (la différence en question) dans la colonne 2013 de la feuille 2. Et ainsi de suite pour chacunes des années.

J'aimerai que cela se copie dans le tableau de la feuille 2 les uns à la suite des autres pour pouvoir établir une moyenne ensuite.

Merci d'avance

13test-annee.xlsx (8.49 Ko)

Bonjour

Compliqué ce filtre ne réagit pas toujours de la même manière

A tester

Bonjour Banzai,

ça fonctionne très bien

Je pense que si tu fais cliquer sur l'image pour que cela fonctionne il doit y avoir une raison. Est ce possible que la macro se réalise pas quand on clique sur l'image mais quand on selectionne la feuille 2 ? Sinon je voudrais le ratacher à un bouton tout simplement :/

Enfin, je dois adapter cette formule la à mes colonnes car j'avais pris l'exemple A, B et C pour faciliter la questions :s

Que dois je modifier la dedans ?

Ma colonne A de l'exercice est en fait de F10 à F3000 dans mon sujet

Ma colonne B et G10 à G3000

ma colonne C de H10 à H3000

et le tout se copie colle dans la Feuille 3. Par contre pour le tableau feuille 3 j'aimerai le faire pour Colonne A = 2014 (A1), B = 2015(B1), jusque Colonne G = 2020 (G1)?

Merci d'avance


Je te rajoute le fichier pour que tu comprennes exactement, le second tableau est en page 3

16essai-vba.xlsm (132.21 Ko)

Bonjour

Tes données ont changées, il n'y à plus de formule qui calcule la différence des dates

Mais pas grave avec la solution de Jean-Eric cela fonctionne bien aussi*

Dans le code je t'ai mis quelques commentaires

Le code est fait de telle sorte que c'est toi qui marque les années que tu veux

Bonjour,

Bonjour Banzai64,

N'as-tu pas une erreur à l'ouverture du fichier dans ThisWorkbook (Workbook_Open)?

Cdlt

La formule de différence est faite a partir de vba directement

C'est pour ça Qu aucune formule n'apparaît dans le tableau

J'essaie ça cet après-midi

Bonjour

@ Jean-Eric

Que ce soit avec celui chez moi où celui sur le forum aucun souci

Quel est ton problème ?

Re,

Par 2 fois, j'ai ouvert le fichier et problème à ligne surlignée.

Je l'ai ouvert une 3ème. fois pour recopier le bout de code, mais + de problème. Et une 4ème. fois

Désolé du dérangement.

Cdlt

Dim ligne As Integer
Private Sub Workbook_Open()
    For ligne = 9 To 1500
       If Cells(ligne, 5) = "RETRAIT" Then
            Range(Cells(ligne, 1), Cells(ligne, 7)).Interior.ColorIndex = 3
        End If
    Next ligne
End Sub

Ceci fonctionne parfaitement

Néanmoins, est ce possible que le tableau de la feuille 3 s'actualise sans que j'ai besoin de cliquer dessus ou alors quand j'ouvre la feuille 4 ?

Car la feuille 3 sera une feuille transistoire et personne pourra l'ouvrir. Néanmoins je me sert de ces données dans la feuille 4 pour faire des tableaux stat. ?

Sinon puis-je masquer les cellules et mettre mes stats en dessous, j'espère que ta macro fonctionnera tjrs ?

Merci

Bonjour

A tester

Bonjour Banzai

Avant ta réponse d'hier, j'ai transférer mon tableau stat sur la même page où tu m'avais mis le tableau avec les années.

J'ai changer les noms des feuilles ainsi que dans les macros, tout à l'air de fonctionner.

Ensuite j'ai masquer les colonnes qui correspondent aux macros que tu as faites et la ta macro ne fonctionne plus ça doit être module 5 dans vba.

Peux tu voir pour la refaire fonctionner. Si c'est le fait de masquer les cellules, je les laisserai apparentes.

Merci

Bonjour

Si le nombre d'année est toujours 4 remplaces la ligne suivante

NbCl = Cells(1, Columns.Count).End(xlToLeft).Column         ' Nombre de colonne dans page "Feuil3"

Par celle-ci

  NbCl = 4                                                   ' Nombre de colonne dans page "Feuil3"

Génial

Dis je viens de voir une de tes réponses sur un autre sujet

j'ai ajouter un activesheet.Unprotect en début de formule et activesheet.protect en fin de formule pour conserver la protection de ma page tout en faisant fonctionner les macros

Je ne peux rentrer le code qu'une seule fois. Après excel ne me demande plus de code. Comment je peux faire pour qu'il me le demande à chaque fois que je redémarre le fichier tout en concervant ma macro :s

Merci d'avance Banzai64

Bonjour

Enzo_IT a écrit :

Je ne peux rentrer le code qu'une seule fois. Après excel ne me demande plus de code

Je ne comprends pas trop la question

Si tu ne marques pas le code de protection dans la macro Excel te le demandera

Exemple

Sub test()
  ActiveSheet.Unprotect
  If ActiveSheet.ProtectContents = True Then Exit Sub
  '
  ' Ton code
  '
  ActiveSheet.Protect Password:="mdp"
End Sub

La 1ère fois que tu vas lancer ce code il ne va rien se passer mais ensuite Excel te demandera le mot de passe (ici c'est : mdp ) pour continuer

il me le demande effectivement mais la feuille n'est pas débloquée pour autant. De plus dès que je selectionne une autre cellule, il me le demande une nouvelle fois


Voici le fichier,

le code se situe en feuille 3. tu comprendra mon problème en essayant

10essai-enzo-it.xlsm (138.78 Ko)

Bonjour

Tu veux que la page soit protégée mais que les cellules soient accessibles

Ne protèges pas ta feuille

Enregistres ton classeur avec un mot de passe

bah en fait c'est un tableau interne entreprise qui sera utilisée par une autre entreprise.

Je veux que notre entreprise puisse entrée le code et avoir accès à la feuille 3

Mais que l'autre société ne puisse pas car ne connais pas le code.

Néanmoins, la feuille 1 et 2 sont accessibles par tout le monde

C'est la derniere étape de ce *** tableau ^^

je suis obligé de laisser accès aux feuilles 1 et 2 mais l'accès à la feuille 3 doit absolument être restreint et dévérouillable par code.

Bonjour

Un essai (moi je n'ai pas testé)

Dans le module ThisWorkbook

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  Sheets("Feuil3").Protect Password:="aerolia"
End Sub

Remplaces les macros dans le module de la feuille

Private Sub Worksheet_Activate()
  If ActiveSheet.ProtectContents = True Then    ' Si la page est protégée
    ActiveSheet.Unprotect                       ' Demande du mot de passe
    If ActiveSheet.ProtectContents = True Then Exit Sub   ' Page toujours protégée on quitte
  End If
  Recopie
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If ActiveSheet.ProtectContents = True Then Exit Sub
  Range("F1") = Date
End Sub

Ahhhh Super merci

Tu m'as été précieux sur ce tableau

Encore merci Banzai64.

Rechercher des sujets similaires à "vbacopier colonne fin texte"