Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Automatiser une procédure

  • Initiateur de la discussion Initiateur de la discussion UJAP
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

UJAP

XLDnaute Occasionnel
Bonjour,

Encore besoin de vos compétences pour la création d’un macro par l’intermédiaire du fichier en pièce jointe,

L’objectif est de pouvoir automatiser la mise en forme de ce tableau afin de l’exploiter sous un tableau dynamique.

Ainsi serait-il possible d’avoir un macro qui complète les cellules vides en prenant identiquement l’information qui est au dessus sans remplacer les cellules qui contiennent déjà des informations.

Exemple : La cellule C3 sera égale à la cellule C2 (ASSED) – La cellule D4 sera égale à D3 qui sera égale à D2.

Pour le réaliser je le fais par l’intermédiaire d’un filtre mais je voudrai que cela devienne automatique,

Il faut souligner que ce tableau est mensuel et qu’il n’est pas identique à celui de n-1,

Alors c’est pour ça que j’ai besoin de votre,
 

Pièces jointes

Re : Automatiser une procédure

bonjour UJAP le forum un exemple a adapter pour tes 8 premiers colonnes

Option Explicit
Sub Macro1()
Dim v As Variant, c As Range
For Each c In Range("A1:A" & Range("A65536").End(xlUp).Row)
If c = "" Then c = v Else: v = c
Next
End Sub
 
Re : Automatiser une procédure

Merci pour ta réponse et ton aide,

Le code fonctionne pour la 1ère colonne mais pas pour les autres ! comment faut-il le modifier pour qu'il fonction sur les autres colonnes ?

Merci,
 
Re : Automatiser une procédure

Bonjour UJAP, le forum.

Sans en être sur, je crois qu'en intervenant sur cette ligne...
Code:
For Each c In Range("A1:[COLOR="Red"]A[/COLOR]" & Range("[COLOR="red"]A[/COLOR]65536").End(xlUp).Row)
en la modifiant en
Code:
For Each c In Range("A1:[COLOR="Red"]D[/COLOR]" & Range("[COLOR="red"]D[/COLOR]65536").End(xlUp).Row)

essaye et dis nous si ça fonctionne.
 
Re : Automatiser une procédure

OK, je viens d'essayer, il recopie dans les autres cellules (colonne B,C...) les éléments de la colonne A, je sais pas comment faire,

Avez-vous des idées pour m'aider ?

Merci,
 
Re : Automatiser une procédure

Bonjour,
Tu ne précises pas quelles colonnes sont concernées !
Donc ici colonne A à H (modifie j dans le cas contraire)
Code:
Sub Recopie()
Dim i As Integer, j As Integer
    For i = 1 To 308 '308 est la dernière ligne de ton tableau
        For j = 1 To 8  'colonne1 (A) à 8 (H)
            If Cells(i, j) = "" Then Cells(i, j) = Cells(i - 1, j)
        Next j
    Next i
End Sub
A+
kjin
 
Re : Automatiser une procédure

Ok je viens de réussir en multipliant le macro,

Pouvez-me dire comment je peux compiler ces 3 macros en un seule afin d’avoir une seule commande,

Les macros :
Sub Macro1()
Dim v As Variant, c As Range
For Each c In Range("B1:B" & Range("B65536").End(xlUp).Row)
If c = "" Then c = v Else: v = c
Next
End Sub

Sub Macro2()
Dim v As Variant, c As Range
For Each c In Range("C1:C" & Range("C65536").End(xlUp).Row)
If c = "" Then c = v Else: v = c
Next
End Sub

Sub Macro3()
Dim v As Variant, c As Range
For Each c In Range("D1😀" & Range("D65536").End(xlUp).Row)
If c = "" Then c = v Else: v = c
Next
End Sub

🙂Merci pour votre aide qui est précieuse,
 
Re : Automatiser une procédure

Merci pour ta réponse kjin,

Sauf que ma dernière ligne ne sera pas obligatoirement la 308, elle peut varier d'un mois à l'autre,

Peut-on modifier quelque chose dans code ? et merci pour les explications ?
 
Re : Automatiser une procédure

Re,
Essaie comme ceci
Code:
Sub Recopie()
Dim i As Integer, j As Integer
    For i = 1 To ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
        For j = 1 To 8
            If Cells(i, j) = "" Then Cells(i, j) = Cells(i - 1, j)
        Next j
    Next i
End Sub
A+
kjin
 
Re : Automatiser une procédure

Merci,

Sauf que ici ils rajoutent des lignes : 309 à 312,

Il faudra qu’il arrête de copier à partir du mmoment il n’y a plus d’informations dans la colonne J ou L ou M,

Fichier en pièce jointe,

Merci,
 

Pièces jointes

Re : Automatiser une procédure

Re,
Désolé j'ai oublié qu'il y avait les cellules isolées en bas
Donc, à priori
Code:
Sub Recopie()
Dim i As Integer, j As Integer
    For i = 1 To ActiveSheet.Range("A1").CurrentRegion.Rows.Count
        For j = 1 To 8
            If Cells(i, j) = "" Then Cells(i, j) = Cells(i - 1, j)
        Next j
    Next i
End Sub
A+
kjin
 
Re : Automatiser une procédure

par exemple si je veux rajouter ton code à la suite de ce code, quelle est la procédure,

Sub test()
For i = Range("c65536").End(xlUp).Row To 1 Step -1
If i <> 9 Then
If i < 9 Or Range("k" & i).Value = "" Or Range("k" & i).Value Like "*--------------*" Or Range("c" & i).Value Like "*sum*" Or Range("a" & i).Value Like "*COLLECTIVITE*" Or Range("c" & i).Value Like "*sum*" Or Range("a" & i).Formula Like "*============*" Then
Rows(i).Delete
End If
End If
Next i
End Sub

Merci,
Christophe
 
Re : Automatiser une procédure

L'objectif de ce code est de sup. des lignes qui ne servent à rien dans le fichier original donc :

- Il sup. les Lignes 1 à 8 pour laisser la légende du tableau puis il d'autres lignes par rapport aux critères,

Je te mets en pièce jointe le fichier original,

Merci,
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

D
Réponses
2
Affichages
907
Decouverte Excel
D
W
Réponses
2
Affichages
2 K
Widget
W
T
Réponses
20
Affichages
25 K
tibo059
T
L
Réponses
0
Affichages
3 K
LiuXing
L
F
Réponses
2
Affichages
18 K
Kimadi
K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…