Excel Macros aide
Résolu/Fermé
CedricG62
Messages postés
38
Date d'inscription
mercredi 19 juillet 2017
Statut
Membre
Dernière intervention
4 novembre 2022
-
8 mai 2022 à 21:52
CedricG62 Messages postés 38 Date d'inscription mercredi 19 juillet 2017 Statut Membre Dernière intervention 4 novembre 2022 - 12 mai 2022 à 10:45
CedricG62 Messages postés 38 Date d'inscription mercredi 19 juillet 2017 Statut Membre Dernière intervention 4 novembre 2022 - 12 mai 2022 à 10:45
A voir également:
- Excel Macros aide
- Liste déroulante excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Aller à la ligne excel - Guide
- Déplacer une colonne excel - Guide
7 réponses
f894009
Messages postés
17219
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
2 janvier 2025
1 712
9 mai 2022 à 07:43
9 mai 2022 à 07:43
Bonjour,
Ce code me permet de cacher les colonnes de A à Q et de les dupliquer sur les colonnes suivantes
Oui, mais votre code efface les colonnes R:AA en dehors de la premiere "ligne"!!
Ce code me permet de cacher les colonnes de A à Q et de les dupliquer sur les colonnes suivantes
Oui, mais votre code efface les colonnes R:AA en dehors de la premiere "ligne"!!
Columns("A:Q").Select Selection.Copy Range("R1").Select ActiveSheet.Paste Range("R2:AA100000").Select Application.CutCopyMode = False Selection.ClearContents
CedricG62
Messages postés
38
Date d'inscription
mercredi 19 juillet 2017
Statut
Membre
Dernière intervention
4 novembre 2022
9 mai 2022 à 09:13
9 mai 2022 à 09:13
J'avais pensé à mettre en place une sorte de compteur mais je ne sais pas comment le mettre en pratique :
Dès qu'on utilise la macro "suivant", ajouter 1 au compteur
Le décalage des colonnes = A:Q + compteur x 18
Et le compteur revient à 0 quand on utilise la macro "réinitialiser"
Dès qu'on utilise la macro "suivant", ajouter 1 au compteur
Le décalage des colonnes = A:Q + compteur x 18
Et le compteur revient à 0 quand on utilise la macro "réinitialiser"
f894009
Messages postés
17219
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
2 janvier 2025
1 712
Modifié le 9 mai 2022 à 12:26
Modifié le 9 mai 2022 à 12:26
Re,
J'avais pensé à mettre en place
Oui, dans une cellule
Le décalage des colonnes = A:Q + compteur x 18
Oui, mais le calcul des colonnes en lettre est un peu plus complexe que vous pensez
exemple pour votre premiere selection A:Q + compteur x 18
Le meme principe pour les autres colonnes: R, AA, AH
J'ai fait avec Columns mais avec Range et lettre colonne c'est la meme chose
"Plus simple" avec ceci
J'avais pensé à mettre en place
Oui, dans une cellule
Le décalage des colonnes = A:Q + compteur x 18
Oui, mais le calcul des colonnes en lettre est un peu plus complexe que vous pensez
exemple pour votre premiere selection A:Q + compteur x 18
Sub test() cel_Tour = 0 'compteur de tour a remplacer par valeur d'une cellule qui sera incrementee ColDep = 17 * cel_Tour + 1 LettreD = Split(Cells(1, ColDep).Address, "$")(1) ColFin = ColDep * cel_Tour + 17 LettreF = Split(Cells(1, ColFin).Address, "$")(1) Columns(LettreD & ":" & LettreF).Select End Sub
Le meme principe pour les autres colonnes: R, AA, AH
J'ai fait avec Columns mais avec Range et lettre colonne c'est la meme chose
"Plus simple" avec ceci
Range(Cells(1, x), Cells(1, x2)).EntireColumn.Select
CedricG62
Messages postés
38
Date d'inscription
mercredi 19 juillet 2017
Statut
Membre
Dernière intervention
4 novembre 2022
9 mai 2022 à 16:08
9 mai 2022 à 16:08
J'ai compris globalement votre formule mais je ne vois pas comment l'intégrer... :(
Sub Suivant()
' Suivant Macro
Columns("A:Q").Select
Selection.Copy
cel_Tour = 0
ColDep = 17 * cel_Tour + 1
Range(Cells(1, x), Cells(1, x2)).EntireColumn.Select
ActiveSheet.Paste
Range("R2:AA100000").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("AD3:AG3").Select
Selection.ClearContents
Range("AD6:AG6").Select
Selection.ClearContents
Range("AD9:AG10").Select
Selection.ClearContents
Range("AD13:AG13").Select
Selection.ClearContents
Range("AE16:AF16").Select
Selection.ClearContents
Columns("A:Q").Select
Selection.EntireColumn.Hidden = True
Range(Cells(1, ColDep)).Select
MsgBox cel_Tour
End Sub
Le message à la fin ne m'affiche pas 1 et ne se refait pas quand je refais la commande :/
Sub Suivant()
' Suivant Macro
Columns("A:Q").Select
Selection.Copy
cel_Tour = 0
ColDep = 17 * cel_Tour + 1
Range(Cells(1, x), Cells(1, x2)).EntireColumn.Select
ActiveSheet.Paste
Range("R2:AA100000").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("AD3:AG3").Select
Selection.ClearContents
Range("AD6:AG6").Select
Selection.ClearContents
Range("AD9:AG10").Select
Selection.ClearContents
Range("AD13:AG13").Select
Selection.ClearContents
Range("AE16:AF16").Select
Selection.ClearContents
Columns("A:Q").Select
Selection.EntireColumn.Hidden = True
Range(Cells(1, ColDep)).Select
MsgBox cel_Tour
End Sub
Le message à la fin ne m'affiche pas 1 et ne se refait pas quand je refais la commande :/
f894009
Messages postés
17219
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
2 janvier 2025
1 712
9 mai 2022 à 18:21
9 mai 2022 à 18:21
Re,
Le message à la fin ne m'affiche pas 1
Relisez ce que j'ai ecrit pour cel_Tour
x et x2 sont a calculer en partant des numeros de colonne de depart
Pour A:Q, les formules sont dans l'exemple que j'ai ecrit : ColDep et ColFin
Faire de meme pour R, AA et AH
Le message à la fin ne m'affiche pas 1
Relisez ce que j'ai ecrit pour cel_Tour
Range(Cells(1, x), Cells(1, x2)).EntireColumn.Select
x et x2 sont a calculer en partant des numeros de colonne de depart
Pour A:Q, les formules sont dans l'exemple que j'ai ecrit : ColDep et ColFin
Faire de meme pour R, AA et AH
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
CedricG62
Messages postés
38
Date d'inscription
mercredi 19 juillet 2017
Statut
Membre
Dernière intervention
4 novembre 2022
Modifié le 12 mai 2022 à 09:25
Modifié le 12 mai 2022 à 09:25
Bonjour, encore moi ahah
Je n'avais pas eu le temps de retravaillé dessus depuis Lundi. Je vais finalement tout modifier et passer en ligne et non plus en colonne (pour une question pratique derrière avec les calculs) :
Range("M4:P8").Select
Selection.Copy
Dim DLig As Long
x = Range("A3").End(xlDown).Row + 4 'là je viens chercher la dernière ligne vide +1 (mes cellules A1 et A2
ActiveSheet.Paste sont vides d'où le +4)
Rows("4:x").Select
Range("Ax").Activate
Selection.EntireRow.Hidden = True
Range("Ox+1").Select
Application.CutCopyMode = False
Range("Ox+1,Mx+2:Nx+3,Ox+4:Px+4,Mx+5:Nx+5").Select
Range("Mx+5").Activate
Selection.ClearContents
Donc théoriquement ça fonctionnerait pour 1 répétition mais pas pour 2 car il viendrait reprendre le même x car je veux sauter 1 ligne à chaque fois, une idée pour régler ça ?
Si au lieu de partir de A3 pour faire ma recherche je pars de A1000000 par exemple et que je fasse :
x = Range("A1000000").End(xlUp).Row - 2
ça fonctionnerait non et je n'aurais plus le problème de saut de ligne ?
Je n'avais pas eu le temps de retravaillé dessus depuis Lundi. Je vais finalement tout modifier et passer en ligne et non plus en colonne (pour une question pratique derrière avec les calculs) :
Range("M4:P8").Select
Selection.Copy
Dim DLig As Long
x = Range("A3").End(xlDown).Row + 4 'là je viens chercher la dernière ligne vide +1 (mes cellules A1 et A2
ActiveSheet.Paste sont vides d'où le +4)
Rows("4:x").Select
Range("Ax").Activate
Selection.EntireRow.Hidden = True
Range("Ox+1").Select
Application.CutCopyMode = False
Range("Ox+1,Mx+2:Nx+3,Ox+4:Px+4,Mx+5:Nx+5").Select
Range("Mx+5").Activate
Selection.ClearContents
Donc théoriquement ça fonctionnerait pour 1 répétition mais pas pour 2 car il viendrait reprendre le même x car je veux sauter 1 ligne à chaque fois, une idée pour régler ça ?
Si au lieu de partir de A3 pour faire ma recherche je pars de A1000000 par exemple et que je fasse :
x = Range("A1000000").End(xlUp).Row - 2
ça fonctionnerait non et je n'aurais plus le problème de saut de ligne ?
f894009
Messages postés
17219
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
2 janvier 2025
1 712
Modifié le 12 mai 2022 à 10:03
Modifié le 12 mai 2022 à 10:03
Bonjour,
théoriquement ça fonctionnerait pour 1 répétition
Impossible, les lignes de ce genre, avec les variables dans les "" provoquent des erreurs
ex:
Comprends pas trop, vous parlez de lignes et vous masquez des colonnes!
Pouvez mettre un fichier exemple avec ce qu'il y a au depart sur une feuille et sur une autre feuille ce que vous voulez
Pour transmettre un fichier,
Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
il faut passer par un site de pièce jointe tel que cjoint.com
Allez sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
théoriquement ça fonctionnerait pour 1 répétition
Impossible, les lignes de ce genre, avec les variables dans les "" provoquent des erreurs
ex:
Rows("4:x").Select
Comprends pas trop, vous parlez de lignes et vous masquez des colonnes!
Pouvez mettre un fichier exemple avec ce qu'il y a au depart sur une feuille et sur une autre feuille ce que vous voulez
Pour transmettre un fichier,
Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
il faut passer par un site de pièce jointe tel que cjoint.com
Allez sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
CedricG62
Messages postés
38
Date d'inscription
mercredi 19 juillet 2017
Statut
Membre
Dernière intervention
4 novembre 2022
12 mai 2022 à 10:45
12 mai 2022 à 10:45
Voici mon fichier "public"
https://www.cjoint.com/c/LEmiHxbdbWk
(les macros sont pour la feuille SW)
Chaque ligne grisé est la suite de l'utilisation de la macro "suivant" : on vient recréer le petit tableau à droite pour copier coller des données et on saute une ligne pour différencier des copier coller précédents
F1 c'est le ce que je travail pour obtenir quelque chose de similaire à Ex_F1 (j'y ai encore quelques erreurs à régler)
CC c'est un exemple de copier coller que l'on peut rentrer dans SW pour faire des tests
Formules j'y ai mis les listes et quelques autres choses
https://www.cjoint.com/c/LEmiHxbdbWk
(les macros sont pour la feuille SW)
Chaque ligne grisé est la suite de l'utilisation de la macro "suivant" : on vient recréer le petit tableau à droite pour copier coller des données et on saute une ligne pour différencier des copier coller précédents
F1 c'est le ce que je travail pour obtenir quelque chose de similaire à Ex_F1 (j'y ai encore quelques erreurs à régler)
CC c'est un exemple de copier coller que l'on peut rentrer dans SW pour faire des tests
Formules j'y ai mis les listes et quelques autres choses
9 mai 2022 à 08:24
Oui en effet car je copie un tableau et je viens le vider des données et on vient y en rentrer de nouvelles