Vba sous excel
Guillaume
-
Guillaume -
Guillaume -
Bonjour,
Suite à une exportation d'une base de données vers excel, je me suis retrouvé avec certains champs déplacés dans de mauvaises colonnes. J'ai donc décidé de passer par une macro modifiée avec vba pour les replacer. Mon problème vient du fait que j'aimerai ne faire une recherche des mauvais champs que sur une seule colonne, sinon il me déplace tous les champs, même s'ils sont bien placés.
Comment pourrais-je limiter la recherche à la première colonne ?
Merci
Guillaume
Suite à une exportation d'une base de données vers excel, je me suis retrouvé avec certains champs déplacés dans de mauvaises colonnes. J'ai donc décidé de passer par une macro modifiée avec vba pour les replacer. Mon problème vient du fait que j'aimerai ne faire une recherche des mauvais champs que sur une seule colonne, sinon il me déplace tous les champs, même s'ils sont bien placés.
Comment pourrais-je limiter la recherche à la première colonne ?
Merci
Guillaume
A voir également:
- Vba sous excel
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel compter cellule couleur sans vba - Guide
2 réponses
Comme ça a chaud et en vitesse j'utiliserai la fonction inputbox pour indiquer quelle colonne je veux traiter.
Dim Message, Title, Default, MyValue
' Définit le message.
Message = "Entrez une valeur comprise entre 1 et 3"
Title = "InputBox Demo" ' Définit le titre.
Default = "1" ' Définition la valeur par défaut.
' Affiche le message, le titre et la valeur par défaut.
MyValue = InputBox(Message, Title, Default)
Dim Message, Title, Default, MyValue
' Définit le message.
Message = "Entrez une valeur comprise entre 1 et 3"
Title = "InputBox Demo" ' Définit le titre.
Default = "1" ' Définition la valeur par défaut.
' Affiche le message, le titre et la valeur par défaut.
MyValue = InputBox(Message, Title, Default)
Bonjour,
La dernière solution ne convenant pas, j'ai trouvé une autre solution qui fonctionne dont voici le code :
Sub CommandButton1_Click()
Dim chaine As String
chaine = "a" + "1"
essai (chaine)
End Sub
Sub essai(toto As String)
Range(toto).Select
ActiveCell.EntireColumn.Select
Selection.Find(What:="laboratoire", After:=ActiveCell, LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
MatchCase:=False).Activate
Selection.FindNext(After:=ActiveCell).Activate
End Sub
Maintenant, au niveau de la recherche, j'aimerai mettre un compteur qui s'incrémente de 1 chaque fois que l'occurence de la recherche est trouvée. Etant limite allergique à VB, je n'arrive pas à placer une condition d'arrêt dans la boucle, sachant que je voudrais que cette boucle s'arrête dès que la colonne a été entièrement analysée.
Si vous pouviez m'aider, je vous en serais reconnaissant. Merci
Guillaume
La dernière solution ne convenant pas, j'ai trouvé une autre solution qui fonctionne dont voici le code :
Sub CommandButton1_Click()
Dim chaine As String
chaine = "a" + "1"
essai (chaine)
End Sub
Sub essai(toto As String)
Range(toto).Select
ActiveCell.EntireColumn.Select
Selection.Find(What:="laboratoire", After:=ActiveCell, LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
MatchCase:=False).Activate
Selection.FindNext(After:=ActiveCell).Activate
End Sub
Maintenant, au niveau de la recherche, j'aimerai mettre un compteur qui s'incrémente de 1 chaque fois que l'occurence de la recherche est trouvée. Etant limite allergique à VB, je n'arrive pas à placer une condition d'arrêt dans la boucle, sachant que je voudrais que cette boucle s'arrête dès que la colonne a été entièrement analysée.
Si vous pouviez m'aider, je vous en serais reconnaissant. Merci
Guillaume