Problème de saisie de données - Macro

Bonjour la Communauté,

J'ai réussi à développer une petite macro pour un de mes rapports et elle marche très bien a une exception près…

En effet quand j'ai enregistré ma macro (j'ai pas codé en VBA directement, trop débutant encore pour ça) la première chose que je fais c'est de sélectionner ma base de données… donc je me mets sur A2 par exemple, puis ctrl+shift vers la gauche et le bas et ça sélectionne tout ce dont j'ai besoin. Apres la macro s'exécute tranquilou..

Le souci c'est que la première fois ou je l'ai enregistrée s'était sur un rapport qui contenait une 40 de lignes. Si je l'exécute sur un nouveau qui contient admettons... 30 lignes, elle va me rajouter une dizaines de lignes avec des 0. Si le nouveau rapport en contient 50 alors elle s'exécute sur les 40 premières et laisse les 10 autres.

Donc ce qui m'embête c'est que VBA reconnait pas la dimension de la base de données a traiter

Le début du code commence par:

Range("A2").Select

Range(Selection, Selection.End(xlToRight)).Select

Range(Selection, Selection.End(xlDown)).Select

Si qqn peut aider, ce serait gentil

bonjour,

On ne le dira jamais assez les Select c'est crade !

Donc la première chose à demander c'est comment en enlever un max !

Mébon... Tu peux (peut-être) commencer avec

Range("A2").CurrentRegion.Select

Ça dépend de ce qui tu as mis dans la première ligne.

On ne le dira jamais assez... il faut joindre un fichier, ça évite de perdre du temps !

A+

Salut galopin01,

Merci pour ta reponse.

C'est crade mais quand on sait pas faire mieux faut s'en contenter

En tout cas j'ai essayer avec ta solution mais ça marche pas..

J'ai annexe le fichier en vba au cas ou ça peut aider

https://drive.google.com/open?id=1uEtan3yjrB03ovjcxvJJsNlUw6BGXVVJ

Bonsoir, Salut Galopin !

Un essai :

Sub Test()
    With ActiveSheet.Range("A2")
        With .Resize(.End(xlDown).Row - 1, .End(xlToRight).Column)
            'Ton code à appliquer à ta "sélection"
        End With
    End With
End Sub

Si pas d'éléments parasites... ça pourrait marcher !

NB- En général quand on dit fichier on attend un fichier Excel (avec le code dans le fichier) !

Cordialement.

Bonsoir Ferrand,

faut s'en contenter

Malheureusement non on ne peut pas :

Enregistrer du code avec l'enregistreur, ça ne fait pas une macro ! Pas plus qu'aller au marché ça ne fait un repas...

Oui il faut le code avec la feuille qui va bien avec :

On n'a pas besoin de toutes les lignes. En fait deux ou trois lignes "bidonnées" peuvent suffire. En revanche toute la structure de la feuille doit être intégralement respectée (en particulier la ligne 1)

A+

Salut,

@Mferrand,

Merci j'ai essayé avec ta methode et ça marche impec

J'essaye de mettre aussi une sorte de légende en dessous du tableau du genre A=.., B=.. et C=..

Faudrait qu'elle puisse s'adapter en fonction de la dimension du tableau.. une sorte de xldown +2 (sauf que ça marche pas pour le moment)

@Galopin01,

galopin01 a écrit :

Enregistrer du code avec l'enregistreur, ça ne fait pas une macro ! Pas plus qu'aller au marché ça ne fait un repas...

T'es pas obligé non plus d'avoir 3 etoiles au Michelin pour cuisiner tes aliments, sinon on mourrait de faim

Autrement dit l'enregistreur fait son boulot et pour ce qu'on lui demande ça marche donc je vois pas pourquoi on s'en servirait pas.

Apres avoir des erreurs/bug dessus ça arrive que tu codes directement ou via enregistrement.

Je rappelle d'ailleurs que tout le monde n'est pas specialisé en code vba et aussi que la plupart des gens qui demandent des infos ici ne travaillent avec Excel qu'une infime partie du temps.. Moi par exemple, m'occuper de certains rapports ça me prend peut etre 5%-10% de mon temps de travail, je travaille avec des dizaines d'autres applications et malheureusement on peut pas etre au top sur chacune d'elle. C'est pour ça que quand on sait pas on demande a meilleur que soi

Rechercher des sujets similaires à "probleme saisie donnees macro"