VBA: problème avec la fonction Dim

Bonjour à tous

J’ai une feuille Excel avec en première colonne des noms d’entreprises et en deuxième des secteurs d’activités séparés par des virgules. Et je voudrais obtenir une feuille a deux colonnes comme ci-dessous:

Nomd’entreprise1 1° secteur d’activité

Nomd’entreprise1 2° secteur d’activité

Nomd’entreprise2 1° secteur d’activité

J'ai donc écrit le programe à la fin de mon post en VBA, mais j'ai un problème avec la fonction Dim. Quand une entreprise est présent sur 3 secteurs comme si dessous :

Entreprise1, Secteur1,secteur2,secteur3

J’obtiens ce résultat :

Entreprise1 Secteur1

Entreprise1 secteur2,secteur3

Entreprise1 secteur3

J’ai utilisé la fonction MsgBox pour afficher les valeurs « dd » et « ff » avant d’appliquer la fonction Mid. Et les valeurs sont correctes Mid devrais sortir « secteur2 » à la 3° ligne. Est-ce que vous savez d’où peux venir le problème ?

Dim virgule As String * 1

Dim aa As Long

Dim bb As Long

Dim zz As Long

Dim cc As Byte

Dim dd As Long

Dim ee As Long

virgule = ","

aa = 0

bb = 0

zz = 2

Call adkomma2

‘Sous-routine ajoutant une virgule à la fin de chaque case.

Do Until Cells(zz, 2) = 0

Branchen = Cells(zz, 2)

cc = Len(Branchen)

Do Until cc = aa

bb = WorksheetFunction.Search(virgule, Branchen, aa + 1)

dd = aa + 1

ee = bb - 1

Branche = Mid(Branchen, dd, ee)

Cells(zz, 2).Activate

Rows(zz).Select

Selection.Insert Shift:=xlDown

zz = zz + 1

Cells(zz, 2) = Branchen

Cells(zz - 1, 2) = Branche

Branchen = Cells(zz, 1)

Cells(zz - 1, 1) = Branchen

Branchen = Cells(zz, 2)

aa = bb

Loop

aa = 0

bb = 0

Rows(zz).Select

Selection.Delete Shift:=xlUp

Loop

End Sub

Salut,

Si tu n'obtiens pas de réponse, je pense que c'est parce que ton code inscrit ainsi ne nous dit pas grand chose.

A ta place, je placerais mon fichier sur le site, si possible au format xls. (et si nécessaire, en enlevant les données confidentielles).

Et alors là, demande immédiatement une augmentation de la capacité à ton fournisseur de messagerie, car tu vas voir arriver les réponses

A te relire.

Bonjour Yvouille,

En l'absence de données complémentaires, voici un fichier qui vous fournira peut-être une piste.

Bonjour,

Attention Dim n'est pas une fonction mais une instruction pour déclarer une variable qui permettra d'attribuer un "espace" de stockage mémoire à cette variable pendant l'exécution du code.

Par rapport à ton fichier une première idée serait d'utiliser la fonctionne Données / Convertir

  • Sélectionne B2 à B8
  • Menu Données / convertir
  • Clique le case à cocher "délimité" puis clique sur "suivant"
  • Coche "tabulation" et "virgule" puis clique sur "suivant" et sur "fin"

Ensuite adapter le code pour faire ce que tu veux

Amicalement

Rechercher des sujets similaires à "vba probleme fonction dim"