Supprimer un enregistrement en base de données
Résolu/Fermé
gaignola
Messages postés
3
Date d'inscription
lundi 28 janvier 2013
Statut
Membre
Dernière intervention
1 février 2013
-
Modifié par gaignola le 28/01/2013 à 17:50
PHILOU10120 Messages postés 6393 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 9 octobre 2024 - 1 févr. 2013 à 13:07
PHILOU10120 Messages postés 6393 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 9 octobre 2024 - 1 févr. 2013 à 13:07
A voir également:
- Supprimer un enregistrement en base de données
- Supprimer une page word - Guide
- Impossible de supprimer un fichier - Guide
- Supprimer compte instagram - Guide
- Supprimer les données de navigation - Guide
- Formules excel de base - Guide
4 réponses
PHILOU10120
Messages postés
6393
Date d'inscription
lundi 16 avril 2012
Statut
Contributeur
Dernière intervention
9 octobre 2024
810
28 janv. 2013 à 18:42
28 janv. 2013 à 18:42
Bonjour
Si votre base de données est défini par un nom de champ exemple Base_xxx
et que la macro sélectionne cette base en utilisant le nom Base_xxx
Pour que la base suive le champ, il ne faut pas effacer les données dans les lignes mais supprimer les lignes. Sans toutes fois toucher la première et la dernière ligne de cette base_xxx ce qui vous ferai perdre le champ de la base qui deviendrait #réf
Si votre base de données est défini par un nom de champ exemple Base_xxx
et que la macro sélectionne cette base en utilisant le nom Base_xxx
Pour que la base suive le champ, il ne faut pas effacer les données dans les lignes mais supprimer les lignes. Sans toutes fois toucher la première et la dernière ligne de cette base_xxx ce qui vous ferai perdre le champ de la base qui deviendrait #réf
gaignola
Messages postés
3
Date d'inscription
lundi 28 janvier 2013
Statut
Membre
Dernière intervention
1 février 2013
29 janv. 2013 à 10:01
29 janv. 2013 à 10:01
Bonjour,
En fait, je n'utilise que la fonction "formulaire" pour alimenter le tableau. Il n'est pas nommé. De même, pour supprimer, j'utilise le formulaire. La macro de mise à jour se positionne en A1 et affiche le formulaire. En sortie de formulaire, elle sélectionne les cellules et les copie dans les cellules de tableaux dans 2 autres onglets qui font les calculs.
Mon pb est que, quand je sélectionne les cellules jusqu'à la "dernière", celle-ci correspond à une ligne vide qui était occupée par l'enregistrement supprimé...
En fait, je n'utilise que la fonction "formulaire" pour alimenter le tableau. Il n'est pas nommé. De même, pour supprimer, j'utilise le formulaire. La macro de mise à jour se positionne en A1 et affiche le formulaire. En sortie de formulaire, elle sélectionne les cellules et les copie dans les cellules de tableaux dans 2 autres onglets qui font les calculs.
Mon pb est que, quand je sélectionne les cellules jusqu'à la "dernière", celle-ci correspond à une ligne vide qui était occupée par l'enregistrement supprimé...
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié par michel_m le 29/01/2013 à 10:10
Modifié par michel_m le 29/01/2013 à 10:10
Bonjour
Il faut que quand tu lances ta macro, elle t'indique la dernière ligne utilisée
une méthode (il y en a d'autres), ta base va de la colonne A à G par ex
derlig=columns("A").find("*",,,,,xlprevious).row
et tu détermines ta nouvelle base:
range("A2:G" & derlig)
Michel
Il faut que quand tu lances ta macro, elle t'indique la dernière ligne utilisée
une méthode (il y en a d'autres), ta base va de la colonne A à G par ex
derlig=columns("A").find("*",,,,,xlprevious).row
et tu détermines ta nouvelle base:
range("A2:G" & derlig)
Michel
gaignola
Messages postés
3
Date d'inscription
lundi 28 janvier 2013
Statut
Membre
Dernière intervention
1 février 2013
1 févr. 2013 à 12:20
1 févr. 2013 à 12:20
Bonjour,
Merci pour cette méthode que je vais mettre de côté pour une prochaine fois.
Finalement je m'en suis sorti avec un compteur :
Dim count As Long
count = Application.WorksheetFunction.CountA(Range("a:a"))
With Worksheets("Base").Range("A2:K" & count)
.....
Cela me permet de détecter la dernière ligne dont la première cellule est non-vide. Après, je concatène "count" chaque fois que j'ai besoin d'aller à la fin.
Si ça peut servir...
Encore merci et à bientôt
Merci pour cette méthode que je vais mettre de côté pour une prochaine fois.
Finalement je m'en suis sorti avec un compteur :
Dim count As Long
count = Application.WorksheetFunction.CountA(Range("a:a"))
With Worksheets("Base").Range("A2:K" & count)
.....
Cela me permet de détecter la dernière ligne dont la première cellule est non-vide. Après, je concatène "count" chaque fois que j'ai besoin d'aller à la fin.
Si ça peut servir...
Encore merci et à bientôt
PHILOU10120
Messages postés
6393
Date d'inscription
lundi 16 avril 2012
Statut
Contributeur
Dernière intervention
9 octobre 2024
810
Modifié par PHILOU10120 le 1/02/2013 à 13:09
Modifié par PHILOU10120 le 1/02/2013 à 13:09
Un petit bout de macro qui vous place sur la cellule en dessous de la dernière cellule pleine il faut respecter que toutes les cellules de la colonne ne contiennent aucun vide en principe c'est le cas dans une base de données puisque c'est la colonne clé
Sheets("votre_feuille").Select
Application.Goto Reference:="ancre_code" 'cellule nommée au-dessus de la 1°colonne
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Activate
'et après coller les informations copier
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("votre_feuille").Select
Application.Goto Reference:="ancre_code" 'cellule nommée au-dessus de la 1°colonne
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Activate
'et après coller les informations copier
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False