Macros Excel - Aide demandée
Dernière réponse : dans Programmation
Bonjour,
J'ai un gros document dans Excel et je voudrais ajouter à ma macro une commande pour :
1) Effacer les lignes vides
2) Faire écrire une numérotation automatique dans la première cellule de chaque ligne en arrêtant à la fin de mon document.
Merci !
J'ai un gros document dans Excel et je voudrais ajouter à ma macro une commande pour :
1) Effacer les lignes vides
2) Faire écrire une numérotation automatique dans la première cellule de chaque ligne en arrêtant à la fin de mon document.
Merci !
Autres pages sur : macros excel aide demandee
Lassé par la pub ? Créez un compte
Faut-il donc le faire pour toi ?
Se demander ce qu'est une ligne vide. Comme en math, on peut prendre la définition à la lettre, ou raisonner par l'absurde.
- une ligne vide au sens trivial. (chiant à vérifier)
- une ligne qui contient quelque chose dans la colonne C n'est pas vide. (facile), mais pour ça, il faut être sûr que la colonne C est obligatoirement renseignée.
Quelques pistes :
Effacer une ligne :
Récupérer le numéro de la ligne courante:
Se demander ce qu'est une ligne vide. Comme en math, on peut prendre la définition à la lettre, ou raisonner par l'absurde.
- une ligne vide au sens trivial. (chiant à vérifier)
- une ligne qui contient quelque chose dans la colonne C n'est pas vide. (facile), mais pour ça, il faut être sûr que la colonne C est obligatoirement renseignée.
Quelques pistes :
Effacer une ligne :
où N est le numéro de la ligne à supprimer.
Rows("N:N").Delete Shift:=xlUp
Récupérer le numéro de la ligne courante:
Donc pour "s'arrêter de compter", mettre une condition pour savoir si la ligne est vide ( cf ci-dessus ). Ex:
=LIGNE()
=SI(B7="";LIGNE();"")
En fait, pour ce qui était d'effacer des lignes, ça va mais je veux effacer des lignes vides qui se sont pas toujours les mêmes d'un document à l'autre. C'est vrai que ma question n'était pas claire (j'étais un peu pressée je crois...)
Ce que je veux faire en fait, c'est effacer une ligne si elle ne contient aucune information. Et je veux que ça arrête quand j'arrive à la fin de mon document. Je vais essayer avec le code que vous venez de me donner. Merci de votre aide.
Ce que je veux faire en fait, c'est effacer une ligne si elle ne contient aucune information. Et je veux que ça arrête quand j'arrive à la fin de mon document. Je vais essayer avec le code que vous venez de me donner. Merci de votre aide.
Est-ce que je pourrais t'envoyer un exemple de mon fichier ? Comme ça, si tu peux m'aider, ce serait plus facile (et j'apprécierais beaucoup mais si tu n'as pas le temps, je comprends aussi... )
J'essaie et je suis en train de me rendre folle !! Rien ne fonctionne comme je veux. Je me demande même si c'est possible de faire ce que j'essaie de faire !
J'essaie et je suis en train de me rendre folle !! Rien ne fonctionne comme je veux. Je me demande même si c'est possible de faire ce que j'essaie de faire !
Salut!
Si tu veux pas passer par du code, tu peux le faire "a la main" s'il n'y a pas trop de lignes vides
pour repérer les lignes vides, tu appuies une fois sur "Fin" (sur le clavier), et flèche vers le bas. Le curseur s'arretera avant la cellule vide. Tu recommence jusqu'à la fin de ton doc. ça marche avec fin + n'importe quelle flèche pour le sens de déplacement
pour la numérotation auto (une fois les lignes supprimées)
tu tapes 1 sur ligne 1, 2 sur ligne 2, tu sélectionne les 2 cellules, tu met la souris sur le ptit carré en bas à droite et tu fait un cliquer glisser vers le bas jusqu'à la fin du doc. Excel va auto incrémenter.
OU
1 sur la 1ere ligne, "=A1+1" sur la 2e et copier vers le bas jusqu'à la fin du doc. cette solution évite de renuméroter si tu enlève des lignes
Si tu veux pas passer par du code, tu peux le faire "a la main" s'il n'y a pas trop de lignes vides
pour repérer les lignes vides, tu appuies une fois sur "Fin" (sur le clavier), et flèche vers le bas. Le curseur s'arretera avant la cellule vide. Tu recommence jusqu'à la fin de ton doc. ça marche avec fin + n'importe quelle flèche pour le sens de déplacement
pour la numérotation auto (une fois les lignes supprimées)
tu tapes 1 sur ligne 1, 2 sur ligne 2, tu sélectionne les 2 cellules, tu met la souris sur le ptit carré en bas à droite et tu fait un cliquer glisser vers le bas jusqu'à la fin du doc. Excel va auto incrémenter.
OU
1 sur la 1ere ligne, "=A1+1" sur la 2e et copier vers le bas jusqu'à la fin du doc. cette solution évite de renuméroter si tu enlève des lignes
Non, Véronique, je veux bien passer beaucoup de temps sur le forum, mais rien en privé. C'est par principe. Tu peux publier les parties difficiles de ton code ici. Et comme je ne possède pas la vérité unique, d'autres peuvent aussi t'aider, comme Paponpon, tu vois.
Pour une boucle, utilise FOR..TO..NEXT.
Exemple de boucle :
Pour une boucle, utilise FOR..TO..NEXT.
Exemple de boucle :
Devine ce que fait la fonction !
Option Explicit
function LigneEstVide ( Ligne as Integer ) as Boolean
Dim i as Integer
LigneEstVide = True
For i = 1 to 256
If Cells ( L, i ).Formula <> "" Then
LigneEstVide = False
Exit Function
End If
Next
End Function
C'est loin toutes ces connaissances... En plus, c'est plus en C++ que j'ai appris qu'en VB... Merci beaucoup de l'aide à tous les deux. Ça avance... Ma directrice va être contente si je réussi ce coup de force... Bien sûr, je lui ai dit que je ne suis pas seule sur ce problème !! Quand je vais réussir, je vais mettre le code ici pour référence à d'autres.
J'ai réussi en partie...
Je voudrais copier cette formule dans toutes les cellules jusqu'à la fin de mon document (qui change évidemment de longueur !)
J'ai essayé avec la boucle mais je dois manquer de logique...
'Formule SI cellule n'est pas un chiffre ou est vide
Range("C12").Select
ActiveCell.FormulaR1C1 = _
"=IF(OR(R[-1]C[-2]="""",ISNUMBER(R[-1]C[-2])),"""",R[-1]C[-2])"
Range("C13").Select
Je voudrais copier cette formule dans toutes les cellules jusqu'à la fin de mon document (qui change évidemment de longueur !)
J'ai essayé avec la boucle mais je dois manquer de logique...
Lassé par la pub ? Créez un compte
- Contenus similaires :
Tags :
- ForumMacros dans excel 2000
- ForumLanguage macros excel
- ForumGuide macros excel
- ForumComment copier des macros de excel
- ForumCoder macros excel
- ForumProgrammer macros excel
- ForumForum macros excel
- ForumDévelopper des macros excel
- ForumLes macros excel 2003
- ForumCompatibilitã des macros excel
- Voir plus
voici un bout de code (entre les balises [ CODE ]), etc>>