Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

[Résolu]Problème d'ajout de ligne à la fin d'une plage (à dimension variable)

beja

XLDnaute Nouveau
Bonjour à la communauté,

je tente de mettre au point une macro qui
1) recherche une plage au moyen de la valeur de de deux combobox2 contenant des dates
2) la copie dans la feuille "feuil1"
3) après la copie de cette plage, ajouter sur la première cellule en dessous de la plage le mot "Test"

Tout se passe sauf si je veux ajouter le point 3, j'ai beau tenter des méthodes variées (utilisation de variables, de boucles, de "cherche la première/dernières non vide", les conditionnelles...), le mot "test" se positionne dans la feuille contenant la base de données, et non pas la feuille où ont été copiées les données.



J'ai recréé le plus simplement possible les conditions d'utilisation dans le fichier ci-joint

- 1 userform
- 1 bouton sur feuil1
- une feuille "Armelle" contenant des données

Merci par avance à celui qui se penchera sur cette problématique ; également aux autres, toute critique constructive d'optimisation de ce code est également la bienvenue en ces lieux, je suis très très jeune utilisateur du VBA)
 

Pièces jointes

  • Test.xls
    67.5 KB · Affichages: 41
  • Test.xls
    67.5 KB · Affichages: 42
  • Test.xls
    67.5 KB · Affichages: 44
Dernière édition:

laurent950

XLDnaute Accro
Re : Problème d'ajout de ligne à la fin d'une plage (à dimension variable)

Bonsoir beja,

Remplacer :
ActiveCell = "test" ' la cellule active prend la valeur "test"

par cela :
DerLign = Sheets("feuil1").Range("A65536").End(xlUp).Row + 1
Sheets("feuil1").Cells(DerLign, 1) = "test"

et cela fonctionne.

laurent
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Problème d'ajout de ligne à la fin d'une plage (à dimension variable)

Bonjour beja, laurent,

tu peux remplacer tout ce code :
Code:
'------------------------TOUT EST OK JUSQUE LA-------------------------------  
  
  For i = 1 To 700                                          '  définition des paramètres de la boucle i ( on balaye de A1 à A700 pour  avoir jusqu'à 700 dates extraites de la base de données )
      If Sheets("feuil1").Range("A" & i) Is Nothing Then     ' si la cellule en A portant le numéro de ligne i est vide
          Sheets("feuil1").Range("A" & i).Select           ' alors on la sélectionne
      End If
    Next i

ActiveCell = "test"                                          ' la cellule active prend la valeur "test"


par cette ligne unique:
Code:
Sheets("feuil1").Range("A" & Sheets("feuil1").Range("A65535").End(xlUp).Row + 1) = "test"
à+
Philippe
 

laurent950

XLDnaute Accro
Re : Problème d'ajout de ligne à la fin d'une plage (à dimension variable)

Merci

phlaurent
vous êtes très fort superbe votre derniere ligne.

Peux être que tous peux etre passer en objet
 
Dernière édition:

beja

XLDnaute Nouveau
Re : Problème d'ajout de ligne à la fin d'une plage (à dimension variable)

Merci pour la suggestion phlaurent55, je vais voir si ça ne perturbe pas les "après" de cette macro (userform, listview etc...).

Edit : Après test, ça fonctionne très bien, et ça améliore la visibilité de mes macros de débutant !
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : [Résolu]Problème d'ajout de ligne à la fin d'une plage (à dimension variable)

Bonsoir les aminches

Personnellement, je me contente de
Code:
Sheets("feuil1").Range("A65536").End(xlUp)(2) = "test"
et les nuits sans lune de
Code:
Sheets(1).[A65536].End(xlUp)(2) = "test"
 

beja

XLDnaute Nouveau
Re : [Résolu]Problème d'ajout de ligne à la fin d'une plage (à dimension variable)

On devient trop technique pour "mes petites mains actuelles"

Je ne préfère pas le manipuler tout de suite, faut pas aller trop vite.

Aussi je conserve cette possibilité en commentaire de ma macro, pour un futur que j'espère proche

Cordialement,
 

Discussions similaires

Réponses
4
Affichages
231
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…