|
Publicité | ||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Date d'inscription: mars 2008
Messages: 81
|
Bonjour à tous!
Voici le problème sur lequel je planche depuis un bon bout de temps sans y arriver. ![]() L'idée c'est que j'ai une feuille excel, que l'on remplie de données brutes, qui servent à générer des rapports. La procédure à suivre est la suivante:
Comme ces données sont brutes, la macro insère automatiquement le titre des colonnes (que j'appelle l'entete). L'entete varie d'une feuille à l'autre et d'une langue à l'autre. Cette feuille sert à la génération de rapport. Les cas d'utilisation sont les suivant:
Mon problème est que je n'arrive pas à savoir s'il y a un entête ou non. La solution brutale serait de comparer la premiere ligne à tous les entetes possibles, mais c'est un peu trop brutal. J'ai essayé une méthode plus fine en nommant la première cellule, mais lorsque l'utilisateur supprime les données (et donc l'entete), le nom de la cellule n'est pas supprimé. Donc mon test ne fonctionne pas. Au niveau du code voila ce que j'avais : Code :
Sub Inserer_Entete(nomFeuille As String) Dim i As Integer, ligneEnTete As Integer, indexNom As Integer ligneEnTete = -1 indexNom = -1 For i = 1 To ThisWorkbook.Names.Count Step 1 If (ThisWorkbook.Names(i).Name = ENTETEINSERE & nomFeuille) Then indexNom = i End If Next i 'Si le nom de cellule existe on le supprime If (indexNom <> -1) Then If (cellule_porte_un_nom("$A$1")) Then ligneEnTete = ThisWorkbook.Names.Item(indexNom).RefersToRange.Row End If ThisWorkbook.Names.Item(indexNom).Delete End If 'Si la ligne d'entête existe on la supprime If (ligneEnTete <> -1) Then Rows(ligneEnTete & ":" & ligneEnTete).Select Selection.Delete End If Rows("1:1").Select Selection.Insert Shift:=xlUp ... |
|
|
|
|
|
#2 |
|
Membre émérite
![]() |
Si une des colonnes contenait une valeur ou une date, ce serait l'idéal.
Il suffirait de tester si sur la 1ere ligne cette cellule est numérique ou date. -------------- Frédéric http://www.access-developpement.com |
|
|
|
|
|
#3 |
|
Membre à l'essai
![]() Date d'inscription: juin 2009
Messages: 49
|
Salut,
Pourquoi ne pa donner une couleur à ta cellule, et tester celle-ci ? Si éventuellement tu veux des codes je dois avoir ça dans mon b..... |
|
|
|
|
|
#4 |
|
Membre du Club
![]() Date d'inscription: mars 2008
Messages: 81
|
salut!
merci pour vos réponses. Pour les dates ou les chiffres ça ne fonctionne pas car j'ai plusieurs en tete différents qui ne contiennent pas forcément des chiffres ou des dates. Pour la couleur, lorsqu'on supprime les données, la couleur reste donc le test ne fonctionnera pas.
|
|
|
|
|
|
#5 |
|
Membre émérite
![]() |
Quand je parlais de 1ere ligne, je pensais à la 1ere ligne de données pas à celle de l'entête.
Il doit forcément y avoir des données de type date ou numérique dans une colonne |
|
|
|
|
|
#6 |
|
Membre à l'essai
![]() Date d'inscription: juin 2009
Messages: 49
|
Pourquoi tu ne passes pas par un bouton renvoyant à une macro de sup, modif .... protege ta feuille de façon que les utilisateurs soit obligés,
1erement de selectionner avec la souris la cellule concernée, 2emement de cliquer sur le bouton et là tu mets ce que tu veux |
|
|
|
|
|
#7 |
|
Membre du Club
![]() Date d'inscription: mars 2008
Messages: 81
|
fgiambelluco: en gros ce que tu veux faire, c'est passer en revue toutes les cellules de la première ligne te regarder s'il n'y a pas de chiffre ou de dates et à ce moment la ce serait une ligne d'entete et on peut la supprimer? Je vais essayer pour voir
CRACOS38: je ne comprends pas ta solution, je ne suis pas sûr d'avoir bien compris. Ce traitement est fait au milieu de la macro et non lorsque l'utilisateur insère ses données, je ne peux donc pas mettre de bouton, puisque l'utilisateur ne touche plus à rien. Merci à vous deux de m'aider en tout cas!
|
|
|
|
|
|
#8 |
|
Membre à l'essai
![]() Date d'inscription: juin 2009
Messages: 49
|
Désolé, mais tu n'est pas très clair pour moi, tu dis :" mais lorsque l'utilisateur supprime les données (et donc l'entete), le nom de la cellule n'est pas supprimé " je ne vois pa sce qui t'empeches de lancer un controle à ce moment là.
|
|
|
|
|
|
![]() |
||
[XL-2003] Insérer une ligne selon une condition
|
||
| Outils de la discussion | |
|
|