Programmation excel
mirage23
-
Mike-31 Messages postés 19571 Date d'inscription Statut Contributeur Dernière intervention -
Mike-31 Messages postés 19571 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
je cherche à faire une rotation des lignes d'un tableau excel ( ligne 1 devien 2, 2 devien 3 etc ) et ce chaque X temps ( 1minute par exemple)
si quelqu'un peut m'aider ou m'envoyer un lien
ryma
je cherche à faire une rotation des lignes d'un tableau excel ( ligne 1 devien 2, 2 devien 3 etc ) et ce chaque X temps ( 1minute par exemple)
si quelqu'un peut m'aider ou m'envoyer un lien
ryma
A voir également:
- Programmation excel
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Déplacer colonne excel - Guide
- Excel trier par ordre croissant chiffre - Guide
25 réponses
Salut,
Tu peux joindre un exemple de ton fichier pour voir sa structure
d'après tes dires et ce que je comprends un filtre devrait faire l'affaire.
Mais si la ligne 1 devient ligne 2 mais que se passe t'il en ligne 1elle reste vide ?
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Tu peux joindre un exemple de ton fichier pour voir sa structure
d'après tes dires et ce que je comprends un filtre devrait faire l'affaire.
Mais si la ligne 1 devient ligne 2 mais que se passe t'il en ligne 1elle reste vide ?
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
mirage23
Messages postés
143
Statut
Membre
https://www.cjoint.com/?BKfwEjjoF2b
mirage23
Messages postés
143
Statut
Membre
un tout petit exemple du tableau dont il s'agit.mesures de differents parametres météo (temp,pression et force du vent )
non jveu ke chaque ligne se déplace d'une ligne vers le bas, la derniere deviendra la premiere , j'espere ke c plus clair
pour le tableau exemple non je n'en ai pas encore fait un !mais n'importe kel exemple tré basik feré l'affaire(tableau 3 ligne 3 colonnes par ex)
merci d'avance :)
pour le tableau exemple non je n'en ai pas encore fait un !mais n'importe kel exemple tré basik feré l'affaire(tableau 3 ligne 3 colonnes par ex)
merci d'avance :)
Re,
Si tu as quelques notions en VBA, colle ce code dans un module et associe le à un bouton pour tester, si c'est que tu cherches, on complétera le code pour un changement cyclique
Sub test()
Range(Range("A65536").End(xlUp), Range("F1")).Cut
Range("A2").Select
ActiveSheet.Paste
Range(Range("A65536").End(xlUp), Range("A65536").End(xlUp).Offset(0, 6)).Cut
Range("A1").Select
ActiveSheet.Paste
End Sub
Si tu as quelques notions en VBA, colle ce code dans un module et associe le à un bouton pour tester, si c'est que tu cherches, on complétera le code pour un changement cyclique
Sub test()
Range(Range("A65536").End(xlUp), Range("F1")).Cut
Range("A2").Select
ActiveSheet.Paste
Range(Range("A65536").End(xlUp), Range("A65536").End(xlUp).Offset(0, 6)).Cut
Range("A1").Select
ActiveSheet.Paste
End Sub
Re,
Alors suis bien et tu fais exactement ceci
Clic droit sur l'onglet de ta feuille/Visualiser le code/Insertion/Module
colle ce code
Sub test()
Range(Range("A65536").End(xlUp), Range("F1")).Cut
Range("A2").Select
ActiveSheet.Paste
Range(Range("A65536").End(xlUp), Range("A65536").End(xlUp).Offset(0, 6)).Cut
Range("A1").Select
ActiveSheet.Paste
End Sub
reviens sur ta feuille excel dessine une simple forme rond ou rectangle
clic droit dessus/Affecter à une macro/pointe sur test et ok
chaque fois que tu cliqueras sur le bouton les lignes de A1 à la colonne F changeront
Si tu n'y arrive pas je te ferais un petit montage
Alors suis bien et tu fais exactement ceci
Clic droit sur l'onglet de ta feuille/Visualiser le code/Insertion/Module
colle ce code
Sub test()
Range(Range("A65536").End(xlUp), Range("F1")).Cut
Range("A2").Select
ActiveSheet.Paste
Range(Range("A65536").End(xlUp), Range("A65536").End(xlUp).Offset(0, 6)).Cut
Range("A1").Select
ActiveSheet.Paste
End Sub
reviens sur ta feuille excel dessine une simple forme rond ou rectangle
clic droit dessus/Affecter à une macro/pointe sur test et ok
chaque fois que tu cliqueras sur le bouton les lignes de A1 à la colonne F changeront
Si tu n'y arrive pas je te ferais un petit montage
jcrois ke g réussi a tester ton code.resultat : il déplace les colonnes (or jveu déplacer les ligne)
et encore un petit hic,la premiere colonne est resté a sa place(la seule a ne pas s'etre déplacé)
et je ne c pa si tu pourra m'aider a faire sa de maniere automatique,c'est a dire chak minute ce travail se fé seul
j'appréci ton aide .encore merci
et encore un petit hic,la premiere colonne est resté a sa place(la seule a ne pas s'etre déplacé)
et je ne c pa si tu pourra m'aider a faire sa de maniere automatique,c'est a dire chak minute ce travail se fé seul
j'appréci ton aide .encore merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re,
évite d'écrire langage sms,
clic sur le lien ci dessous et enregistre le fichier, puis ouvre le. En cellule I1 tu peux saisir la valeur du déclenchement et pour arrêter le code saisi simplement 0
ou change de feuille le code s'arrête, reviens sur ta feuille le code reprend
j'ai ajouté un petit bip pour attirer ton attention lors des changements
https://www.cjoint.com/?BKfxEJxDDwP
évite d'écrire langage sms,
clic sur le lien ci dessous et enregistre le fichier, puis ouvre le. En cellule I1 tu peux saisir la valeur du déclenchement et pour arrêter le code saisi simplement 0
ou change de feuille le code s'arrête, reviens sur ta feuille le code reprend
j'ai ajouté un petit bip pour attirer ton attention lors des changements
https://www.cjoint.com/?BKfxEJxDDwP
Re,
Copie tes données sur mon fichier tu seras sur que cela marche.
Tu saisis 0 en I1
il faudra peut être adapter le code qui prend en compte les colonnes de A à F
on verra cela demain, pour ce soir je décroche
Copie tes données sur mon fichier tu seras sur que cela marche.
Tu saisis 0 en I1
il faudra peut être adapter le code qui prend en compte les colonnes de A à F
on verra cela demain, pour ce soir je décroche
bonsoir
le dernier programme marche à merveil pour un seul tableau
maintenant j'ai un autre petit souci de programmation pour mon projet
j'aimerais pouvoir réaliser ce meme processus sur plusieurs fichiers excels,c'est a dire creer ce programme pour une chaine de tableaux
j'ai essayé avec un tableau croisé mais c'est pas du tout évident pour une débutante comme moi
j'apprécierais encore une autre aide
merci
le dernier programme marche à merveil pour un seul tableau
maintenant j'ai un autre petit souci de programmation pour mon projet
j'aimerais pouvoir réaliser ce meme processus sur plusieurs fichiers excels,c'est a dire creer ce programme pour une chaine de tableaux
j'ai essayé avec un tableau croisé mais c'est pas du tout évident pour une débutante comme moi
j'apprécierais encore une autre aide
merci
Re,
En VBA il faut être très précis, tu dis d'adapter à plusieurs fichiers et d'une chaine de tableau
que veux tu dire exactement plusieurs fichiers indépendant
ou plusieurs tableaux dans le même fichier, sur plusieurs onglets par exemple ou sur la même feuille
En VBA il faut être très précis, tu dis d'adapter à plusieurs fichiers et d'une chaine de tableau
que veux tu dire exactement plusieurs fichiers indépendant
ou plusieurs tableaux dans le même fichier, sur plusieurs onglets par exemple ou sur la même feuille
Re,
Alors sur chaque fichier, il faut coller ces deux codes dans la Thiswokbook du Visual basic clic droit sur l'onglet de feuille/Visualiser le code, ou touches Alt et F11
'le premier lance le code dès l'ouverture du fichier
Private Sub Workbook_Open()
[I1] = 5
Call LancementAutomatique
End Sub
'celui ci arrête la macro à la fermeture du fichier
Private Sub Workbook_BeforeClose(Cancel As Boolean)
[I1] = 0
End Sub
ces deux codes sont à coller dans les propriétés de ta feuille clic droit sur l'onglet de feuille/Visualiser le code, ou touches Alt et F11
'ce code lance la procédure lorsqu'on revient sur la feuille concernée
Private Sub Worksheet_Activate()
[I1] = 5
Call LancementAutomatique
End Sub
'ce code lance la procédure lorsqu'on quitte sur la feuille concernée ce qui permet de travailler facilement sur une autre feuille
Private Sub Worksheet_Deactivate()
[I1] = 0
End Sub
Et pour terminer lorsque tu es dans le Visual Basic clic droit sur l'onglet de feuille/Visualiser le code, ou touches Alt et F11
il faut ouvrir un Module, clic sur Insertion et Module et coller ce code qui gére le clignottement
Declare Function Beep Lib "kernel32" (ByVal Frequence As Long, ByVal Duree As Long) As Long
Sub LancementAutomatique()
Go = TimeSerial(Hour(Time), Minute(Time), Second(Time) + Range("I1"))
Application.OnTime Go, "LancementAutomatique"
Call Beep(500, 100)
Range(Range("A65536").End(xlUp), Range("F1")).Cut
Range("A2").Select
ActiveSheet.Paste
Range(Range("A65536").End(xlUp), Range("A65536").End(xlUp).Offset(0, 6)).Cut
Range("A1").Select
ActiveSheet.Paste
End Sub
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Alors sur chaque fichier, il faut coller ces deux codes dans la Thiswokbook du Visual basic clic droit sur l'onglet de feuille/Visualiser le code, ou touches Alt et F11
'le premier lance le code dès l'ouverture du fichier
Private Sub Workbook_Open()
[I1] = 5
Call LancementAutomatique
End Sub
'celui ci arrête la macro à la fermeture du fichier
Private Sub Workbook_BeforeClose(Cancel As Boolean)
[I1] = 0
End Sub
ces deux codes sont à coller dans les propriétés de ta feuille clic droit sur l'onglet de feuille/Visualiser le code, ou touches Alt et F11
'ce code lance la procédure lorsqu'on revient sur la feuille concernée
Private Sub Worksheet_Activate()
[I1] = 5
Call LancementAutomatique
End Sub
'ce code lance la procédure lorsqu'on quitte sur la feuille concernée ce qui permet de travailler facilement sur une autre feuille
Private Sub Worksheet_Deactivate()
[I1] = 0
End Sub
Et pour terminer lorsque tu es dans le Visual Basic clic droit sur l'onglet de feuille/Visualiser le code, ou touches Alt et F11
il faut ouvrir un Module, clic sur Insertion et Module et coller ce code qui gére le clignottement
Declare Function Beep Lib "kernel32" (ByVal Frequence As Long, ByVal Duree As Long) As Long
Sub LancementAutomatique()
Go = TimeSerial(Hour(Time), Minute(Time), Second(Time) + Range("I1"))
Application.OnTime Go, "LancementAutomatique"
Call Beep(500, 100)
Range(Range("A65536").End(xlUp), Range("F1")).Cut
Range("A2").Select
ActiveSheet.Paste
Range(Range("A65536").End(xlUp), Range("A65536").End(xlUp).Offset(0, 6)).Cut
Range("A1").Select
ActiveSheet.Paste
End Sub
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
pardon mais c'est le meme code qu'avant
et si je veux que la rotation des lignes de plusieurs fichiers independants soient faite de la meme maniere?
ou inserer le lien de ce fichier ?
ce que je ne comprend pas ce sont les valeurs "A65536" et (xIUP) et offset (0,6)
mais sinon je vois la logique que suit ce programme
merci
et si je veux que la rotation des lignes de plusieurs fichiers independants soient faite de la meme maniere?
ou inserer le lien de ce fichier ?
ce que je ne comprend pas ce sont les valeurs "A65536" et (xIUP) et offset (0,6)
mais sinon je vois la logique que suit ce programme
merci
Re,
Il suffit demande ce qui pose problème
A65536" et (xIUP) et offset (0,6)
Range("A65536").End(xlUp) en fait on lance une recherche de cellule contenant une valeur et pour cela on commence à partir de la cellule A65536 et avec End(xlUp) on remonte
et en ajoutant Offset(0, 6) on décale la cellule active de 6 cellule vers la droite
ci-dessous on commence une recherche depuis la cellule A65536 en remontant et lorsqu'une cellule non vide est rencontrée la recherche ou la sélection se décale de 6 colonne vers la droite
Range("A65536").End(xlUp).Offset(0, 6)
et pour compléter cette ligne de code qui pourrait s'écrire plus technique, on lance deux recherches, une pour sélectionner la première cellule non vide et la seconde recherche la première cellule non vide et se décale de 6 cellule à droite ce qui donne une sélection de la colonne A à la colonne H exemple A10 à H10
Range(Range("A65536").End(xlUp), Range("A65536").End(xlUp).Offset(0, 6)).
Il suffit demande ce qui pose problème
A65536" et (xIUP) et offset (0,6)
Range("A65536").End(xlUp) en fait on lance une recherche de cellule contenant une valeur et pour cela on commence à partir de la cellule A65536 et avec End(xlUp) on remonte
et en ajoutant Offset(0, 6) on décale la cellule active de 6 cellule vers la droite
ci-dessous on commence une recherche depuis la cellule A65536 en remontant et lorsqu'une cellule non vide est rencontrée la recherche ou la sélection se décale de 6 colonne vers la droite
Range("A65536").End(xlUp).Offset(0, 6)
et pour compléter cette ligne de code qui pourrait s'écrire plus technique, on lance deux recherches, une pour sélectionner la première cellule non vide et la seconde recherche la première cellule non vide et se décale de 6 cellule à droite ce qui donne une sélection de la colonne A à la colonne H exemple A10 à H10
Range(Range("A65536").End(xlUp), Range("A65536").End(xlUp).Offset(0, 6)).
Re,
Si non n'hésite pas à revenir dans cette discussion, cela permet à l'intervenant qui le souhaite de suivre l'évolution d'un code et y apporter plus facilement une modification ou le compléter
Si non n'hésite pas à revenir dans cette discussion, cela permet à l'intervenant qui le souhaite de suivre l'évolution d'un code et y apporter plus facilement une modification ou le compléter
quel est le code qui selectionne l'avant derniere ligne non vide?
(Range("A65536").End(xlDown), Range("F1")) -1 ?
(Range("A65536").End(xlDown), Range("F1")) -1 ?
Re,
Pour sélectionner la première cellule vide d'une colonne en remontant à partir d'une cellule basse exemple de A1000
Range("A1000").End(xlUp).select
Pour sélectionner la première cellule vide d'une colonne en descendant à partir de cellule A1
Range("A1").End(xlDown).Select
et si tu veux sélectionner une cellule dans une autre colonne tu démarres le balayage dans la colonne concerné exemple pour chercher en colonne F
Range("A1").End(xlDown).Select
pour sélectionner la première cellule vide d'une ligne vers la gauche de la cellule active à partir de X10 par exemple
range("X10").End(xlToLeft).Select
pour sélectionner la première cellule vide d'une ligne vers la droite de la cellule active à partir de A10 par exemple
range("X10").End(xlToLeft).Select
Range("A10").End(xlToRight).Select
Pour sélectionner la première cellule vide d'une colonne en descendant à partir de cellule A1
Range("A1").End(xlDown).Select
.offset(0,3) sert à décaler la sélection à partir de la cellule active, ici, 0 reste sur la ligne trouvée et 3 se décale de 3 cellules à droite ou -3 se décale de 3 cellules à gauche
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Pour sélectionner la première cellule vide d'une colonne en remontant à partir d'une cellule basse exemple de A1000
Range("A1000").End(xlUp).select
Pour sélectionner la première cellule vide d'une colonne en descendant à partir de cellule A1
Range("A1").End(xlDown).Select
et si tu veux sélectionner une cellule dans une autre colonne tu démarres le balayage dans la colonne concerné exemple pour chercher en colonne F
Range("A1").End(xlDown).Select
pour sélectionner la première cellule vide d'une ligne vers la gauche de la cellule active à partir de X10 par exemple
range("X10").End(xlToLeft).Select
pour sélectionner la première cellule vide d'une ligne vers la droite de la cellule active à partir de A10 par exemple
range("X10").End(xlToLeft).Select
Range("A10").End(xlToRight).Select
Pour sélectionner la première cellule vide d'une colonne en descendant à partir de cellule A1
Range("A1").End(xlDown).Select
.offset(0,3) sert à décaler la sélection à partir de la cellule active, ici, 0 reste sur la ligne trouvée et 3 se décale de 3 cellules à droite ou -3 se décale de 3 cellules à gauche
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Re,
offset(1,0) sélectionne la ligne au dessous de la cellule active exemple si tu utilise cette syntaxe
Range("A1000").End(xlUp) tu fais une recherche colonne A de cellule non vide en partant de la cellule A1000. La cellule contenant une valeur est A50 par exemple, la cellule active s'arrête sur A50
si tu ajoutes .offset(1,0) ta cellule active descend d'une ligne pour sélectionner la cellule A51 pour sélectionner la cellule au dessus la syntaxe est .offset(-1,0)
pour décaler de 3 colonnes par exemple c'est offset(1,3)
offset(1,0) sélectionne la ligne au dessous de la cellule active exemple si tu utilise cette syntaxe
Range("A1000").End(xlUp) tu fais une recherche colonne A de cellule non vide en partant de la cellule A1000. La cellule contenant une valeur est A50 par exemple, la cellule active s'arrête sur A50
si tu ajoutes .offset(1,0) ta cellule active descend d'une ligne pour sélectionner la cellule A51 pour sélectionner la cellule au dessus la syntaxe est .offset(-1,0)
pour décaler de 3 colonnes par exemple c'est offset(1,3)
re
je tiens tout d'abord à te remercier pour tes précieuses explications
maintenant je peux programmer seule des codes pour jouer n'importe comment sur les lignes d'un tableau
maintenant j'ai une autre question : est-ce que c'est possible de copier automatiquement des fichiers excel (qui sont téléchargés dans un dossier ) dans un tableau somme de tous les tableaux qui existaient déja dans ce fichier (qui ont été copié avant ) ?
si c'est possible j'aimerais etre dirigé vers la fonction qui pourrait faire ça ( je ne crois pas que les tableaux croisés dinamiques puissent copier de tableaux d'un dossier )
j'espere avoir été assez explicite
merci d'avance
je tiens tout d'abord à te remercier pour tes précieuses explications
maintenant je peux programmer seule des codes pour jouer n'importe comment sur les lignes d'un tableau
maintenant j'ai une autre question : est-ce que c'est possible de copier automatiquement des fichiers excel (qui sont téléchargés dans un dossier ) dans un tableau somme de tous les tableaux qui existaient déja dans ce fichier (qui ont été copié avant ) ?
si c'est possible j'aimerais etre dirigé vers la fonction qui pourrait faire ça ( je ne crois pas que les tableaux croisés dinamiques puissent copier de tableaux d'un dossier )
j'espere avoir été assez explicite
merci d'avance
Re,
Je ne comprends pas très bien ton problème, mais si tu veux regrouper dans ton nouveau fichier tes les données venant d'autres fichiers, il n'y a pas de problème si la configuration des fichiers est la même (même colonnes, pas de cellules fusionnées etc ...)
on peut écrire un code complexe mais le plus simple et sage est de le faire manuellement tu sélectionnes tes données et clic droit Copier/clic droit sur la première cellule vide du nouveau classeur et Collage spécial/coche valeur et OK cela ne copiera que tes valeurs sans des formules éventuelles ou des formats
Je ne comprends pas très bien ton problème, mais si tu veux regrouper dans ton nouveau fichier tes les données venant d'autres fichiers, il n'y a pas de problème si la configuration des fichiers est la même (même colonnes, pas de cellules fusionnées etc ...)
on peut écrire un code complexe mais le plus simple et sage est de le faire manuellement tu sélectionnes tes données et clic droit Copier/clic droit sur la première cellule vide du nouveau classeur et Collage spécial/coche valeur et OK cela ne copiera que tes valeurs sans des formules éventuelles ou des formats
mais c'est des fichiers téléchargés au fur et à mesure
il s'agit de fichiers excel contenant des mesures données par des capteurs externes ,chaque periode définie il en sort un nouveau tableau de mesures , ce tableau est placé dans un dossier,comment l'additionner aux tableaux précédents ?
il s'agit de fichiers excel contenant des mesures données par des capteurs externes ,chaque periode définie il en sort un nouveau tableau de mesures , ce tableau est placé dans un dossier,comment l'additionner aux tableaux précédents ?
Re,
Si les données ne sont pas confidentielles ou ntu les maquilles, peux tu mettre ton fichier à notre disposition avec ce lien
https://www.cjoint.com/
Si les données ne sont pas confidentielles ou ntu les maquilles, peux tu mettre ton fichier à notre disposition avec ce lien
https://www.cjoint.com/
https://www.cjoint.com/?3Kixhde8URS
les dossiers étaient trop pleins jusqu'à 14 mega minimum chacun
ce dossier contient les donnés de chaque mois pour une année
les dossiers étaient trop pleins jusqu'à 14 mega minimum chacun
ce dossier contient les donnés de chaque mois pour une année
https://www.cjoint.com/?3Kixhde8URS
les dossiers étaient trop pleins jusqu'à 14 mega minimum chacun
ce dossier contient les donnés de chaque mois pour toute l'année
les dossiers étaient trop pleins jusqu'à 14 mega minimum chacun
ce dossier contient les donnés de chaque mois pour toute l'année
Re,
je n'ai pas winrar sur mon système et pas envi de le télécharger.
Il y a des fournisseurs d'accès qui permettent l'envoi de gros fichier comme free que tu peux tester en espèrant que depuis ton lieu géographique cela marche.
dans la barre URL saisir
https://portail.free.fr/
clic sur envoi de gros fichier/Parcourir pour sélectionner ton fichier/clic sur Envoyer
free va généré un lien qu'il restera à coller dans un post. L'opération prend quelques minutes en fonction de l'enconbrement du réseau, la taille du fichier
je n'ai pas winrar sur mon système et pas envi de le télécharger.
Il y a des fournisseurs d'accès qui permettent l'envoi de gros fichier comme free que tu peux tester en espèrant que depuis ton lieu géographique cela marche.
dans la barre URL saisir
https://portail.free.fr/
clic sur envoi de gros fichier/Parcourir pour sélectionner ton fichier/clic sur Envoyer
free va généré un lien qu'il restera à coller dans un post. L'opération prend quelques minutes en fonction de l'enconbrement du réseau, la taille du fichier
http://dl.free.fr/getfile.pl?file=/Yjtu3X1k voici le lien d'un fichier text parmis d'autres, un fichier text represente les données d'une journée, un dossier d'un mois contient 30 fichier par exemple et à la fin on aura un gros dossier d'une année contenant 12 dossier que chaqu'un contient 30 fichiers txt qui doivent etre copier automatiquement sur Excel.